Как исключить множество элементов в R? - PullRequest
0 голосов
/ 17 января 2012

У меня есть два фрейма данных: A и B с одинаковым количеством имен и содержимого столбцов.Фрейм данных B является подмножеством A.Я хочу получить A без B.Я пробовал различные функции, такие как setdiff, duplicated, which и другие.Ни один из них не работал для меня, возможно, я не использовал их правильно.Любая помощь приветствуется.

1 Ответ

2 голосов
/ 17 января 2012

Вы можете использовать merge, например:

df1 <- data.frame(col1=c('A','B','C','D','E'),col2=1:5,col3=11:15)
subset <- df1[c(2,4),]

subset$EXTRACOL <- 1 # use a column name that is not present among 
                     # the original data.frame columns
merged <- merge(df1,subset,all=TRUE)

dfdifference <- merged[is.na(merged$EXTRACOL),]
dfdifference$EXTRACOL <- NULL

-----------------------------------------
> df1:
  col1 col2 col3
1    A    1   11
2    B    2   12
3    C    3   13
4    D    4   14
5    E    5   15

> subset:
  col1 col2 col3
2    B    2   12
4    D    4   14

> dfdifference:
  col1 col2 col3
1    A    1   11
3    C    3   13
5    E    5   15
...