使用 devtools 创建 R 包和函数 "use_rcpp" 指示我将代码行复制到一个不存在的文件中

Creating an R package with devtools and the function "use_rcpp" is instructing me to copy lines of code into a file that does not exist

我正在尝试创建一个小型测试 R 程序包以掌握工作流程。我一直在按照此处找到的教程进行操作:https://r-pkgs.org/index.html Everything has been running smoothly but eventually I want to add rcpp code to my package and this is where I'm running into problems. The function use_rcpp in the devtools package is supposed to set up your package with everything you need to start adding c++ files. However once the command is done running it tells you to copy and paste comments into a file that does not exist. The tutorial I'm following says the same thing here https://r-pkgs.org/src.html#cpp 但只是说要将 roxygen 标签添加到您的包中。它没有指定我需要在哪里添加它们。

我得到的输出与教程中的不同,但我认为那只是因为我 运行 是不同的版本。

函数给出的输出:

✔ Setting active project to 'R/packages/rcppTester'

✔ Creating 'src/'

✔ Adding '.o', '.so', '*.dll' to 'src/.gitignore'

● Copy and paste the following lines into 'R/packages/rcppTester/R/rcppTester-package.R':

## usethis namespace: start

#' @useDynLib rcppTester, .registration = TRUE

## usethis namespace: end

NULL

[Copied to clipboard]

✔ Adding 'Rcpp' to LinkingTo field in DESCRIPTION

✔ Adding 'Rcpp' to Imports field in DESCRIPTION

● Copy and paste the following lines into 'R/packages/rcppTester/R/rcppTester-package.R':

## usethis namespace: start

#' @importFrom Rcpp sourceCpp

## usethis namespace: end

NULL

[Copied to clipboard]

同样,我没有名为 "rcppTester-package.R" 的文件,当我尝试使用 cpp 文件时,我的包抛出错误。任何建议将不胜感激。

如果它们让您感到困惑,您不必使用 devtoolsusethis -- 它们确实添加了一层混淆,有时会阻碍正在发生的事情。

Rcpp本身有一个函数Rcpp.package.skeleton(),而RStudioIDE在'File -> New Project -> Package with Rcpp'下有一些相关(但独立)的东西。我两个都用。您可以从其中任何一个开始,然后 得到一个可以编译 的包。两者都会这样做。

将其作为快照,然后添加 roxygen2 文档。如果您手动执行此操作,则需要 运行 compileAttributes() 将 roxygen 标记从 C++ 文件获取到 roxygenize() 将看到它的 R 文件。 RStudio 会自动为您完成这两项工作。

总结一下:如果联合 'package using Rcpp and roxygen' 给您带来问题,请尝试将 'package with Rcpp' 和 'package using roxygen' 分开。