编译包时自动将 RcppParallel 必要条件添加到 R 包的名称空间

Add RcppParallel requisites to the NAMESPACE of an R package automatically when compiling the package

我在自己的 R 包中使用 RcppParallel

我知道我需要将 Imports: RcppParallel 添加到 DESCRIPTION 文件并将 importFrom(RcppParallel, RcppParallelLibs) 添加到 NAMESPACE 文件。

我当前编译 R 包的工作流程是:

  1. 运行 Rcpp::compileAttributes()
  2. 运行 devtools::document()
  3. 手动添加 importFrom(RcppParallel, RcppParallelLibs)NAMESPACE 文件
  4. 运行 devtools::install("MyPackage",quick = T,upgrade="never")

我的问题是我应该对我的 R 包进行哪些更改,以便我可以跳过手动步骤 3?我已经将 Imports: RcppParallel 添加到 DESCRIPTION 文件,为什么 importFrom(RcppParallel, RcppParallelLibs) 在第 2 步后没有出现在 NAMESPACE 文件中?

为此使用 devtools 包。每个要添加到自己包中的包添加命令 use_package

library(devtools)
use_package("RcppParallelw", min_version = T)

use_package 功能会自动为您添加 DESCRIPTION 中所需的任何条目。 此外,min_version = T 选项将确保您的软件包要求 RcppParallelw 的版本不低于您当前安装的版本。

在您的一个 C++ 源文件中将其添加到现有条目中

//' @importFrom RcppParallel RcppParallelLibs

当你 运行 Rcpp::compileAttributes() 这被转移到 roxygen2 包所在的 R 文件中,当 运行ning 在 'full mode' 中也重写 NAMESPACE 将添加条目。