hom*_*aha 5 r package rcpp roxygen2
我已经制作了一个简单的 R 包(纯 R)来用暴力解决问题,然后我尝试通过编写 Rcpp 脚本来加快代码速度。我编写了一个脚本来将运行时间与“bench”库进行比较。现在,我如何将此脚本添加到我的包中?我尝试添加
#'@importFrom Rcpp cppFunction
Run Code Online (Sandbox Code Playgroud)
在我的 R 脚本之上并将 Rcpp 文件插入 scr 文件夹中,但不起作用。有没有办法将其添加到我的 r 包中,而无需从头开始创建包?抱歉,如果已经被问过,但我对这一切都很陌生,并且完全迷失了。
这种转换实际上(仍然)非常困难(从需要多个文件的意义上来说)。人们很容易忽视细节。让我带您了解原因。
让我们假设您使用 R 包启动了一个工作包package.skeleton()。这是最简单、最一般的情况。该包将工作(但有警告,请参阅我的pkgKitten包以获取包装器而不是清理,以及 CRAN 上的十几个其他包帮助功能和包)。请特别注意,我没有提到roxygen2这只是增加了复杂性,所以让我们只关注.Rd文件。
现在,您可以将最简单的包与由 和 for 构建的包进行对比Rcpp,即通过使用Rcpp.package.skeleton(). 您至少会看到这些差异
DESCRIPTION对于LinkingTo:和ImportsNAMESPACE对于importFrom以及useDynLib线src目录和可能的需要src/Makevars所有这些都使得(基本上)通过启动新包Rcpp.package.skeleton()并将现有包代码复制到该包中变得更容易。我们根本就没有转换助手。我仍然时不时地进行您尝试过的“手动转换”,甚至我需要尝试一两次,而且我已经多次看到所有错误消息......
因此,即使您不想“复制所有内容”,我认为最简单的方法是
RcppdiffPS 请记住,当您使用roxygen2并在目录中有文档时src/,始终要先运行Rcpp::compileAttributes(),然后再运行roxygen2::roxygenize()。RStudio 和其他助手会为您完成此操作,但仍然很容易忘记......
| 归档时间: |
|
| 查看次数: |
433 次 |
| 最近记录: |