2012-02-06 16 views
9

私は2つの文字ベクトルxとyを持っています。Rの文字ベクトルを比較して一意の値や欠損値を見つける

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

x内の値は繰り返されません(つまり、すべて一意です)。ベクトルyについても同様である。私の質問は、どのように2つのベクトルを比較する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と非常によく似ています-and-not-another –

+0

同じような投稿をして申し訳ありません!これにリンクしていただきありがとうございます。回答をいただいた皆様に感謝します。 – Alexander

答えて

25
setdiff(x,y) 

あなたのために仕事をします。

5

私は、これは動作するはずだと思う:

x[!(x %in% y)] 

まずそれは、それが元のインデックスとしてあることを利用し、Yに含まれていないすべてのxについてチェックします。

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

か:

> x[-match(y,x)] 
[1] "b" "f" 
> 
関連する問題