示例数据
d<-data.table(a=c(1,2,3,4,5))
我想要这个结果:
d[a < 3]
如何实现相同的使用my.column
?
my.column<-'a'
d[my.column < 3]
#Empty data.table (0 rows) of 1 col: a
虽然以下有效,但我希望有更好的方法:
setnames(d,my.column,"my.column")
d[my.column<3,]
setnames(d,'my.column',my.column)
请注意,这也不起作用
setkey(d,my.column)
答案 0 :(得分:0)
大卫在评论中指出你可以使用
d[get(my.column) < 3]
我个人更喜欢的另一种方式是建立对i
的调用,而不是获取变量:
d[eval(as.name(my.column)) < 3]
在i
中使用时不确定效果。如果在j
arg中使用,我相信eval(as.name(
会略微加快 - 取决于AFAIK列的数量。