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中的行)?请概括解决方案以适用于任何数据表。
注意:我确定之前已经问过这个问题,但我的谷歌搜索结果是空的。如果这是重复的,请将其标记为正确并指出正确的方向。
答案 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