在包含R / Cpp代码的R包中使用roxygen2作为R函数

时间:2016-04-26 05:50:24

标签: c++ r rcpp r-package

我有一个Cpp函数,使用Rcpp packgae在R函数内部调用。 R函数接受inputDataFrame并使用Cpp函数(也接受DataFrame)来计算药物量(A1)作为时间的函数。然后,R返回inputDataFrame,其中包含已计算金额A1的已添加列。

我想在RStudio中使用roxygen2包来对R函数(而不是Cpp函数)进行documnet。但是,当我使用roxygen2注释(如下所示)时,它没有按照您在构建模型时所期望的方式生成* .RD文件和帮助页面。请注意,当我的包只包含R函数时,我可以毫无困难地使用roxygen2。在后一种情况下,*.RD文件和帮助页面会按预期自动生成。

有关如何做到这一点的任何提示?

1 个答案:

答案 0 :(得分:5)

当然你可以做到。

首先通过RStudio中的帮助功能或通过调用Rcpp.package.skeleton()创建一个包。

第二次在C ++源文件中创建一个roxygen块。在GitHub上查看一百万个示例,例如this recent example one of mine

第三告诉Rcpp创建C ++ - > R绑定:调用compileAttributes()。 RStudio会为你做这件事。 现在你在R 中有了roxygen标记(例如seen here)。

第四让Roxygen处理标记。你可以在RStudio中启用它,我只需要调用(一个帮助脚本调用)roxygen2::roxygenize(".", roclets="rd")。这会创建the manual page

现在你有一个包含R函数的包调用C ++函数。

所有这些已在the corresponding Rcpp Attributes vignette中解释了多年。