2012-08-23 86 views
5

我已經寫了一些R代碼的論文,依靠一些外部軟件包(例如,plyrreshape),並使用inlineRcppArmadillo編寫幾個相對簡單的內聯C++函數。如何確保R/Rcpp代碼是可複製的(「可分發」)?

我想確保它可以在我自己的計算機(Win64)上「按原樣」執行,以滿足研究重現性的需要。

我的問題:假設我包含的代碼安裝所需的軟件包,將在RcppArmadillo(和Rcppinline)封裝足以能夠彙編寫在RcppArmadillo的功能,或將最終用戶需要改變系統路徑在他的Windows機器上編譯?如果沒有,是否有可能/建議保存從我的最終編譯的功能,幷包含在我運送的R代碼?另外,在不太可能的情況下,代碼應該稍後運行一段時間(比如說幾年),在當前版本中包含完整的R安裝和相關軟件包以使代碼「面向未來「?

我希望問題很清楚。

回答

9

我認爲你的意思是你的代碼是「可分發」和「可以由其他人執行」這是一個寬鬆的要求。 「可重複」意味着前面的問題是真實的,並增加了結果相同的限制(達到您選擇的小數位)。

而「我怎樣讓別人運行我的R代碼」的常見答案是創建一個包。

對於與Rcpp相關的代碼,我們有一個完整的小插件,致力於使用您的Rcpp使用鱈魚構建您自己的包。小插曲叫做'Rcpp-package'。

+0

謝謝,我不知道「可重複」和「可分配」之間的區別。正如你可能猜到的,我的意思是後者。 我半信半疑的答案是「創建一個包」,這對我來說似乎讓我的代碼顯得過於莊重,但如果這是最簡單,最有文檔記錄的解決方案,我會這樣做。 – MatteoS

+0

順便說一句,感謝您'Rcpp'和'RcppArmadillo' – MatteoS

+0

我投票贊成「可重複」和「可分配」的區別。我也不知道。 –

相關問題