【发布时间】:2015-12-03 23:05:51
【问题描述】:
这一定是非常基本的事情,但我不知道如何使用与 data.table 列同名的真实变量。我可以使用不同的变量名来避免冲突,但我想知道是否有办法在放弃 DT 之前评估变量。
> DT = data.table(ID = c("b","b","b","a","a","c"), a = 1:6, b = 7:12, c=13:18)
> DT
ID a b c
1: b 1 7 13
2: b 2 8 14
3: b 3 9 15
4: a 4 10 16
5: a 5 11 17
6: c 6 12 18
> DT[b == 7]
ID a b c
1: b 1 7 13
> b <- 7
> DT[b == b]
ID a b c
1: b 1 7 13
2: b 2 8 14
3: b 3 9 15
4: a 4 10 16
5: a 5 11 17
6: c 6 12 18
【问题讨论】:
-
嗯,有
merge(DT,list(b=b))[]。由于(我认为是)一个错误,需要尾括号。 -
@Frank - 不是必须是
merge(DT, list(b=b), by="b")吗?你的代码给了我一个键匹配错误。 -
@RichardScriven 你是对的——哎呀。我在四处寻找让它工作的方法时设置了密钥。
-
谢谢大家。看起来我最好创建一个新变量而不是跳过箍:-)
标签: r data.table