小编Jon*_* B.的帖子

在包开发中使用data.table包中的`[`方法

我们正在创建一个包,其中我们的一个函数使用 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 标头中使用?

先感谢您!

methods import r package data.table

5
推荐指数
1
解决办法
59
查看次数

标签 统计

data.table ×1

import ×1

methods ×1

package ×1

r ×1