2009-12-03 2 views

ответ

83

вы можете использовать setdiff() (разность множеств) функция:

> setdiff(x, y) 
[1] 1 
+14

Watchout: 'setdiff (х, у) и' setdiff (у, х) 'не то же самое. –

44

Да. Для векторов вы можете просто использовать оператор %in% или is.element().

> x[!(x %in% y)] 
1 

Для матрицы существует множество разностных подходов. merge(), вероятно, самый прямой. Я предлагаю looking at this question for that scenario.

20

Файл справки в R для setdiff, union, intersect, setequal, and is.element предоставляет информацию о стандартных функциях множества в R.

setdiff(x, y) Возвращает элементы x, которые не указаны в y.

Как отмечено выше, это асимметричная разница. Так, например:

> x <- c(1,2,3,4) 
> y <- c(2,3,4,5) 
> 
> setdiff(x, y) 
[1] 1 
> setdiff(y, x) 
[1] 5 
> union(setdiff(x, y), setdiff(y, x)) 
[1] 1 5 
+0

Почти нет информации. – ddunn801

+1

@ ddunn801 Я думаю, его хорошо знать о файле общей справки, но я добавил немного больше информации, чтобы сделать его, надеюсь, более полезным. –

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