2014-02-05 3 views
3
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 оказались пустыми. Если это дубликат, отметьте его так и укажите мне в правильном направлении.

ответ

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 
+1

+1 или эквивалентно (в данном случае) 'setkey (dt, a); дт [! J (образец (5,3))] ' – Arun

Смежные вопросы