对 R data.table ":=" 的本地包依赖

Local package dependency to R data.table ":="

我有一个本地 R 包,一些函数正在使用 data.table 操作。当我安装包时,它会安装 data.table 因为它是依赖项。但是,我在包中无法弄清楚这部分。

这个正在函数中工作:

dt=data.table::as.data.table(dt)

所以它将 dt 转换为 data.table

这个不行

dt[SuperDummyDate == '',SuperDummyDate := NA]

程序包找不到“:=”是数据表函数。因为它在 [] 中,所以我无法添加 data.table::..

我在函数中尝试了 require(data.table),但还是不行。

提前致谢!

data.table 应该在包的 NAMESPACE 文件中导入 :

import(data.table)

使用 Roxygen,您可以在函数头中要求此导入,它将自动添加到 NAMESPACE:

#' Your function title & description
#'
#' @parameter data
#' @import data.table
#'
DTfunction <- function(data) {
  data[,newcol:=.SD[,1]]
}

加载函数后测试:

DTfunction(as.data.table(mtcars[,1:2]))

      mpg   cyl newcol
    <num> <num>  <num>
 1:  21.0     6   21.0
 2:  21.0     6   21.0
 3:  22.8     4   22.8
 4:  21.4     6   21.4
...