R:使用devtools自动向命名空间添加导入(data.table)

R:使用devtools自动向命名空间添加导入(data.table),r,namespaces,devtools,R,Namespaces,Devtools,如何使用devtools自动将import(data.table)添加到命名空间文件中 通常,如果我的软件包使用data.table我只需手动写入,但我不能使用@export和devtools::document正确创建名称空间文件,因为它要么覆盖我添加的内容,要么根本不更新文件 另外,它说不要手动编辑它 谢谢 示例package/R/function.Rcode #' @export #' @import data.table test_data_table = function(dt) {

如何使用
devtools
自动将
import(data.table)
添加到
命名空间
文件中

通常,如果我的软件包使用
data.table
我只需手动写入,但我不能使用
@export
devtools::document
正确创建
名称空间
文件,因为它要么覆盖我添加的内容,要么根本不更新文件

另外,它说不要手动编辑它

谢谢


示例
package/R/function.R
code

#' @export
#' @import data.table
test_data_table = function(dt) {
  dt[, a := 3]
}

呼叫示例

> test_data_table
function(dt) {
  dt[, a := 3]
}
<environment: namespace:package>

> test_data_table(dt)
 Show Traceback

 Rerun with Debug
 Error in `[.data.frame`(x, i, j) : could not find function ":=" 
>测试数据表
函数(dt){
dt[,a:=3]
}
>测试数据表(dt)
显示回溯
使用调试重新运行
“[.data.frame`(x,i,j)中出错:找不到函数”:

您可能根本不应该使用
import(*)
,除非您确实需要从包中导出的每个对象。相反,使用
importFrom(pkg,obj1,obj2,…)
只导入您需要的对象

从编写R扩展手册S1.5.1中:

有选择地使用
importFrom
而不是
import
是一种很好的做法,尤其是当从包含十几个出口的软件包中导入时,推荐使用
importFrom


尽管如此,如果您确实需要导入所有内容,请使用
#@import data.table

数据。table
实际上是我将
导入所有内容的少数软件包之一。我想问题在于语法。我是否理解我使用
importFrom(data.table,data.table.[)
?@AkhilNair方法是
[.data.table
,但您无法导入它,因为它没有导出。我怀疑您是否可以有选择地从data.table导入,并且仍然使用data.table本身。您可以有选择地从data.table导入一些函数,但对于创建核心功能的函数,您可能并不了解。@Roland,我认为所有这些都意味着应该像sni一样进行导入我在OP中添加了ppet。如果是这样,我仍然会得到
找不到的代码:=
错误。@Roland Oops-对不起,这太愚蠢了。在修复该代码时,我仍然看到一个错误(OP中的澄清)