我有一个文件,可以在Linux服务器上创建并保存一个data.table作为r对象:
library(data.table)
dt <- data.table(col1=c("a","a","b"),col2=1:3)
save(dt,file="./dt")
rm(dt)
如果稍后再加载该对象并尝试使用它,即使类似乎已正确维护,我也会收到一条错误消息,好像它不是data.table:
sudo Rscript -e 'load("./dt"); class(dt); dt[col1=="a"]'
“ data.table”“ data.frame”在[[.data.frame`(dt,col1 == “ a”):找不到对象'col1' 调用:[-> [.data.frame 执行停止
为了避免该问题,我必须将其明确地转换为data.table。
sudo Rscript -e 'load("./dt"); dt<-data.table::as.data.table(dt); library(data.table); dt[col1=="a"]'
那是出于某种原因吗?