Dhs*_*kdh 4 r dataframe data.table
我有一个data.table对象,我想做一个简单的查找:
print(class(dt))
print(colnames(dt))
print(dt[region == "UK", ])
Run Code Online (Sandbox Code Playgroud)
在我的交互式R会话中,这段代码完全符合它的要求.
[1] "data.table" "data.frame"
[1] "region" "site" "visit"
[4] "connectionfailure" "dnserror" "http404"
# ... output ...
Run Code Online (Sandbox Code Playgroud)
在非交互式脚本会话中,我收到一个令人困惑的错误:
[1] "data.table" "data.frame"
[1] "region" "site" "visit"
[4] "connectionfailure" "dnserror" "http404"
Error in `[.data.frame`(x, i, j) : object 'region' not found
Run Code Online (Sandbox Code Playgroud)
看起来R调度dt[....到[.data.frame而不是[.data.table].有什么想法为什么?
很可能您没有library(data.table)在批处理执行中设置.可能是基于您的用户配置文件自动加载data.table,但不是批处理exec.另外,只是b/c有一个类data.table,并不意味着包加载:
library(data.table)
dt <- data.table(a=1:3)
detach("package:data.table", unload=TRUE)
class(dt)
# [1] "data.table" "data.frame"
setkey(dt, a)
# Error: could not find function "setkey"
library(data.table)
setkey(dt, a)
#works
Run Code Online (Sandbox Code Playgroud)