我想使用与列名称相同的变量对data.table
进行子集处理,这会引起一些问题:
dt <- data.table(a=sample(c('a', 'b', 'c'), 20, replace=TRUE),
b=sample(c('a', 'b', 'c'), 20, replace=TRUE),
c=sample(20), key=c('a', 'b'))
evn <- environment()
a <- 'b'
dt[a == a]
#Expected Result
dt[a == 'b']
我看到了这个可能的解决方案:
env <- environment()
dt[a == get('a',env)]
但是它像这样不方便:
this.a = a
dt[a == this.a]
那么还有其他优雅的解决方案吗?
a == a
应该有效或是好的语法呢?目前我的 R-forge 似乎无法连接,所以我无法查看 @Arun 的链接和具体内容,但让a == a
能够按照 OP 想要的方式工作,对我来说似乎是个坏主意,我认为你的最后一个解决方案才是正确的。 - eddidata.table
已经按a
键入,因此您可以执行dt[a]
。 - eddi