使用 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 文件时,我的包抛出错误。任何建议将不胜感激。
如果它们让您感到困惑,您不必使用 devtools
或 usethis
-- 它们确实添加了一层混淆,有时会阻碍正在发生的事情。
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' 分开。
我正在尝试创建一个小型测试 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 文件时,我的包抛出错误。任何建议将不胜感激。
如果它们让您感到困惑,您不必使用 devtools
或 usethis
-- 它们确实添加了一层混淆,有时会阻碍正在发生的事情。
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' 分开。