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

Using roxygen2 for R functions in an R package containing R/Cpp code

本文关键字:roxygen2 for 包中使 函数 代码 包含 Cpp      更新时间:2023-10-16

>我有一个Cpp函数,它是使用Rcpp packgae在R函数中调用的。R 函数接受inputDataFrame并使用 Cpp 函数(也接受数据帧)计算药物量(A1)作为时间的函数。然后,R 返回inputDataFrame,并为计算的金额添加列A1

我想使用 RStudio 中的包来记录 R 函数(而不是 Cpp 函数roxygen2。但是,当我使用roxygen2注释(如下所示)时,它没有生成 *。RD 文件和帮助页,以您在构建模型时预期的方式进行。请注意,当我的软件包仅包含 R 函数时,使用 roxygen2 没有问题。在后一种情况下*.RD文件和帮助页面将按预期自动生成。

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

当然你可以这样做。

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

其次,在C++源文件中创建一个 roxygen 块。在 GitHub 上查看一百万个示例,例如我最近的这个示例之一。

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

第四,Roxygen处理加价。您可以在 RStudio 中启用此功能,我只需调用(一个辅助脚本调用)roxygen2::roxygenize(".", roclets="rd") .这将创建手册页

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

多年来,所有这些都在相应的 Rcpp 属性小插曲中得到了解释。