get
函数通常在data.table中没有问题,但我无法理解这个错误的原因。
library(data.table)
tb<-data.table(x=c(1,2), y=c(3,4), z=c(5,6), w=c("a","b"))
tb[w != "b", .(x=sum(x)), by=.(y, zz=z)] #OK
y zz x
1: 3 5 1
tb[, .(x=sum(x)), by=.(y, zz=get("z"))] #OK
y zz x
1: 3 5 1
2: 4 6 2
tb[w != "b", .(x=sum(x)), by=.(y, zz=get("z"))] #not OK?!
Error in get("z") : object 'z' not found
(我使用R版本3.3.2和data.table版本1.9.6。)