2012-02-06 35 views
9

我有兩個字符向量x和y。比較R中的字符向量以找到唯一的和/或缺失的值

x <- c("a", "b", "c", "d", "e", "f", "g") 
y <- c("a",  "c", "d", "e",  "g") 

x內的值不會重複(即它們都是唯一的)。向量y也是一樣。我的問題是,我怎樣才能讓R比較這兩個向量,然後告訴我哪些元素相對於x從y中丟失了?否則,我想讓R告訴我,「b」和「f」從y中丟失。 (請注意,在我的真實數據中,x和y每個都包含幾千個觀察值,這就是爲什麼我想以編程方式進行此操作的原因。可能有一個非常簡單的答案,但我不確定要搜索什麼在R幫助文件中)。

感謝任何人誰可以幫助!

+1

這個問題是非常相似的http://stackoverflow.com/questions/1837968/r-how-to-tell-what-is-in-one-vector而不是另一個 – 2012-02-06 15:15:27

+0

對不起,類似的帖子!感謝您鏈接到此,並感謝所有提供答案的人。 – Alexander 2012-02-06 15:20:32

回答

25
setdiff(x,y) 

將爲你做這項工作。

5

我認爲這應該工作:

x[!(x %in% y)] 

首先它檢查對於所有的x不在y,則它使用的是原始的索引。

8
> x[!x %in% y] 
[1] "b" "f" 

或:

> x[-match(y,x)] 
[1] "b" "f" 
> 
相關問題