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中的行)?请归纳适用于任何数据表的解决方案。

注意:我敢肯定这已经被问过了,但是我的Google搜索结果是空的。如果这是重复的,请标记为正确,并指向正确的方向。

最佳答案

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

08-24 15:48