如何获得数据表子集的补充?

时间:2014-02-05 16:25:15

标签: r data.table

set.seed(77)
dt<-data.table(a=seq(1,5))
> dt
   a
1: 1
2: 2
3: 3
4: 4
5: 5

dtsub<-dt[sample(5,3)]
> dtsub
   a
1: 2
2: 3
3: 4

如何获得dtsub的补码(即dt中不在dtsub中的行)?请概括解决方案以适用于任何数据表。

注意:我确定之前已经问过这个问题,但我的谷歌搜索结果是空的。如果这是重复的,请将其标记为正确并指出正确的方向。

1 个答案:

答案 0 :(得分:7)

library(data.table)
set.seed(77)
dt<-data.table(a=seq(1,5))
dtsub<-dt[sample(5,3)]

setkey(dt,a)
setkey(dtsub,a)

dt[!dtsub]
#   a
#1: 1
#2: 5