【发布时间】:2021-09-09 12:55:27
【问题描述】:
我是第一次开发非常小的软件包(而且 - 也许这对我的问题很重要 - 想在 CRAN 上发布它)。这个包使用 data.table 和 base R 中的函数。我想利用 data.table::setDTthreads() 函数提供的并行计算。
当用户加载 data.table 包时,此函数会立即调用,但我在开发包时没有这样做。我现在所做的只是:(1)在DESCRIPTION文件中,我将data.table添加到Imports字段; (2) 在 NAMESPACE 中,我包含了 import(data.table)。
据我所知,这与 library(data.table) 不同,我不希望这样,因为我不想在用户加载我的包时加载 data.table。但我仍然想使用 data.table::setDTthreads() 函数。我应该在我的脚本中哪里包含它?或者也许我正在使用它,因为我在 NAMESPACE 中包含了 import(data.table)?
我的包在 R/ 目录中只包含一个 .R 文件,功能很少,但只有一个会被导出以对用户可见(所以其他的只是辅助函数)。比方说,它看起来像这样:
#' roxygen2 skeleton
main_function <- function(x) {
x <- helper_function_1(x)
x
}
helper_function_1 <- function(x) {
x
}
我真正担心的是,当我在我的包中使用 data.table::setDTthreads() 时,它会对用户的环境产生影响,即我将启用并行计算并设置线程,而不仅仅是我的函数包,但通常用于用户会话。
【问题讨论】:
标签: r data.table r-package