如何确保R / Rcpp代码可重现(“可分发”)?

时间:2012-08-23 20:28:55

标签: r rcpp future-proof

我为论文编写了一些R代码,依赖于一些外部包(例如plyrreshape)并使用inline编写了几个相对简单的内联C ++函数, RcppArmadillo

我希望确保它可以在我自己(Win64)以外的计算机上“按原样”执行,以用于研究再现性目的。

我的问题:假设我包含了安装所需软件包的代码,RcppArmadillo(和Rcppinline)软件包是否足以能够编译{ {1}},或者最终用户是否需要在Windows机器上更改系统路径以进行编译?如果没有,是否可以/建议从我的结尾保存已编译的功能并包含在我发货的R代码中?

此外,在不太可能的情况下,代码应该在一段时间后运行(比如说,几年),是否足够包含完整的R安装以及当前版本中的相关软件包以使代码“未来” -proof“?

我希望问题很明确。

1 个答案:

答案 0 :(得分:10)

我认为你的意思是你的代码是“可分发的”和“可由其他人执行”,这是一个更宽松的要求。 “可重复”意味着前一个问题是正确的,并且增加了结果相同的限制(直到你选择的epsilon)。

“我怎样才能让其他人运行我的R代码”的常用答案是创建一个包。

对于与Rcpp相关的代码,我们有一个完整的小插图致力于使用您的Rcpp-using cod构建自己的包。插图被称为'Rcpp-package'。