在自定义包

时间:2018-05-31 16:09:23

标签: r data.table

我有自定义程序包但我在使用data.table函数时遇到问题。我在data.table文件中添加了ImportsUsing data.table package inside my own package

如果我将这个功能保存在全球环境中,它可以毫无问题地运行,但现在从pacakge调用时。

错误是:

  

:=中的错误(shapeId,paste(shape1,shape3,sep =“ - ”)):     检查is.data.table(DT)== TRUE。否则,:=和:=(...)被定义为仅用于j,一次且特定方式。请参阅帮助(“:=”)

但是,如果我进入browser()模式发生此问题,我会发现正在运行is.data.table(res)会返回TRUE: 复制:

res = structure(list(shape1 = c("oh", "sd", "tx", "tx", "tx", "tx"), 
    shape3 = c("pike", "aurora", "kendall", "kendall", "kendall", 
    "kendall")), .Names = c("shape1", "shape3"), row.names = c(NA, 
6L), class = c("data.table", "data.frame"))

然后运行

res[, shapeId := paste(shape1, shape3, sep = '-')]

触发错误。即使

Browse[2]>is.data.table(res)
Browse[2]>TRUE

0 个答案:

没有答案