2009-12-03 15 views

cevap

83

Eğer setdiff() (küme farkı) işlevini kullanabilirsiniz:

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

watchout: 'setdiff (x, y) ve' setdiff (y, x) 'aynı değildir. –

44

Evet. Vektörler için %in% operatörünü veya is.element() işlevini kullanabilirsiniz.

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

Bir matris için birçok fark yaklaşımı vardır. merge() muhtemelen en ileri doğrudur. looking at this question for that scenario'u öneririm.

20

setdiff, union, intersect, setequal, and is.element için R yardım dosyası R. içinde

setdiff(x, y) döner elemanları standart seti fonksiyonları hakkında bilgi verir x, y içinde değil. Yukarıda belirtildiği gibi asimetrik bir farktır. Yani, örneğin :

> 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

Neredeyse bilgi yok. – ddunn801

+1

@ ddunn801 Genel yardım dosyasını bilmenin iyi olduğunu düşünüyorum, ancak umarım daha yararlı olması için biraz daha bilgi ekledim. –

12
x[is.na(match(x,y))] 
İlgili konular