我们正在创建一个包,其中一个函数使用了data.table包的函数。我们尽可能在代码中使用
对于一个函数来说,这很容易。例如:
在运行
::
,而非在roxygen头文件中导入整个包。对于一个函数来说,这很容易。例如:
data.table::setkey(our_data_1, our_variable)
然而,我们不知道如何针对一种方法进行此操作。例如:
our_data_3 <- our_data_1[our_data_2, roll = "nearest"]
在data.table中,[
是具有特定方法的,这表明:
methods(`[`)
我尝试了多种方法,多种组合,使用@importFrom
,但都失败了。例如,将以下行添加到我们的roxygen头文件中...
@importFrom data.table `[.data.table`
在运行
devtools::document()
时返回了以下内容:Warning message:
object ‘[.data.table’ is not exported by 'namespace:data.table'
我也尝试过在代码中使用[.data.table
等方式,但这些方法都失败了...
在我们的roxygen头部导入整个data.table包是可行的(@import data.table
),但不推荐这样做,因为我们想要在代码中引用每个函数的包(或者至少使用@importFrom
)。
有没有一种方法可以在函数代码中使用data.table的[
方法,而不必导入整个data.table包呢?或者至少可以通过在roxygen头部使用@importFrom
来只导入该方法吗?
非常感谢!
.datatable.aware=TRUE
,但并没有解决我的问题。通过尝试你提供的可行示例,我注意到你将其放在了函数体外面。把它移到那里就解决了!感谢你花时间帮助我并提供可行的示例。 - Jonas B.