6

我已经为一篇论文写了一些 R 代码,依赖于一些外部包(例如plyrand )并使用andreshape编写了几个相对简单的内联 C++ 函数。inlineRcppArmadillo

为了研究可重复性的目的,我想确保它可以在我自己的计算机(Win64)以外的计算机上“按原样”执行。

我的问题:假设我包含了用于安装所需软件包的代码,RcppArmadillo(和Rcppinline)软件包是否足以编译用 编写的函数RcppArmadillo,或者最终用户是否需要更改系统路径以在他的 Windows 机器上进行编译?如果没有,是否有可能/建议从我端保存已编译的函数并包含在我要运送的 R 代码中?

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

我希望这个问题很清楚。

4

1 回答 1

10

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

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

对于与 Rcpp 相关的代码,我们有一个完整的小插图专门用于使用您的 Rcpp 使用 cod 构建您自己的包。小插图称为“Rcpp-package”。

于 2012-08-23T20:34:17.083 回答