我们正在创建一个包,其中我们的一个函数使用 data.table 包的函数。我们没有通过我们的 roxygen 头文件导入整个包,而是尝试::在我们的代码中尽可能多地使用。
对于函数,这很容易。例如:
data.table::setkey(our_data_1, our_variable)
Run Code Online (Sandbox Code Playgroud)
然而,我们不知道如何为一个方法做到这一点。例如:
our_data_3 <- our_data_1[our_data_2, roll = "nearest"]
Run Code Online (Sandbox Code Playgroud)
其中[data.tables有具体的方法,表示为:
methods(`[`)
Run Code Online (Sandbox Code Playgroud)
我尝试了多种方法。多个组合,使用@importFrom,失败。例如,将以下行添加到我们的 roxygen 标头中...
@importFrom data.table `[.data.table`
Run Code Online (Sandbox Code Playgroud)
...运行时返回以下内容devtools::document():
Warning message:
object ‘[.data.table’ is not exported by 'namespace:data.table'
Run Code Online (Sandbox Code Playgroud)
我也在[.data.table我们的代码中尝试过类似的东西,但那些也失败了......
导入整个data.table包在我们roxygen头奋力(@import data.table),但这不是首选,因为我们要引用包中的每个功能的我们的代码中(或至少使用@importFrom)。
有没有办法[在不导入整个 data.table 包的情况下在函数代码中使用data.table的方法?或者至少可以只导入该方法,例如通过@importFrom在我们的 roxygen 标头中使用?
先感谢您!