2012-12-20 17 views
6

我正在寫一個R包,它的大小開始增長,所以真的很感謝在文件夾pkg/R /和(尤其是)在pkg/src /中。R包:在pkg/R和pkg/src文件夾中使用自定義文件/目錄結構

例如,假設我有一些類型A的算法的兩個族和一些類型B的函數以及一個主入口點。理想的情況是R /或SRC /文件夾會被安排如下:

  • 的typeA/
    • algorithms1/
      • algo11.ext
      • ...
    • algorithms2/
      • algo21.ext
      • ...
  • 的TypeB/
    • function1.ext
    • ...
  • main.ext

在{R 「EXT」 ,cpp,c,f,...}和潛在的兩個具有相同名稱的文件。

可能嗎?如果是的話,我該怎麼做?

在此先感謝!


[2012-12-31]編輯:一個想法是寫幾個腳本 - 說不定內部另一條R包 - 到(未)變平的結構化包裝用於測試或擴散。但是可能有更好的解決方案,所以我會稍微等一下。

+0

你可能?能夠在'src /'中使用自定義的Makefile。你有沒有搜索R擴展手冊?我認爲重組'R /'會更困難。 –

+0

我試圖在src /中使用自定義的Makefile,但雖然它在命令行中運行良好,但在使用R CMD INSTALL(「沒有規則構建myfile.o所需的目標'myfolder/myfile.c'」)時失敗。我只發現這個關於子目錄組織http://cran.r-project.org/doc/manuals/R-exts.html#Package-subdirectories的段落,並沒有看到任何有用的內容。也沒有什麼谷歌搜索一會兒,所以我在這裏嘗試。 – BenjaminAuder

回答

1

作爲「Writing R擴展」手冊indicates here,pkg/src下的Makevars文件允許爲C/C++/Fortran代碼嵌套子文件夾。 (例如參見RSiena包)。

但是,我沒有發現有關pkg/R中的自定義結構的任何內容。所以,我寫了一個小封裝(可用的,儘管需要改進),其完成以下任務:

  • 加載/卸載具有封裝(潛在的)下的pkg/R嵌套文件夾
  • 啓動R和/或C單元在其上的測試[基本框架,要被替換(例如RUnit和檢查)]
  • 導出包要CRAN兼容(弄平R代碼裏面,生成Makevars文件)

我將在這裏,如果其鏈接它達到可發佈狀態。 (目前我可以通過電子郵件發送)。

+0

你有沒有在包裝上取得進展? –

相關問題