对 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
...
我有一个本地 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
...