【发布时间】:2014-12-12 22:19:51
【问题描述】:
我有以下data.table:
> dt= data.table(num=c(1,2,1,1,2, 3, 3,2), letters[1:8])
> dt
num V2
1: 1 a
2: 1 c
3: 1 d
4: 2 b
5: 2 e
6: 2 h
7: 3 f
8: 3 g
我想过滤所有 num 等于 1 和 2 并得到结果 data.table。我可以这样做:
> dt[num==1 | num==2,]
num V2
1: 1 a
2: 1 c
3: 1 d
4: 2 b
5: 2 e
6: 2 h
或者:
rbind(setkey(dt, num)[J(1)],setkey(dt, num)[J(2)])
但是 setkey 是否有任何选项可以使第二个表达式更短,例如:
setkey(dt, num)[1|2]
由于 setkey 代码对于非常大的数量来说更快......我将不胜感激!
【问题讨论】:
-
喜欢这个
setkey(dt, num)[num %in% c(1,2)]?
标签: r data.table