0

2 つの変数に格納されている値を比較する必要があります。変数のサイズが異なります。例えば

x = c(1,2,3,4,5,6,7,8,9,10)

y = c(2,6,11,12,13)

2 と 6 が両方の変数に存在するという答えが必要です。これは R で行う必要があります。だれか助けてください。

4

3 に答える 3

8

intersect 関数は、@mdsumner の単純なインデックス付けの必要性を回避します。

> x = c(1,2,3,4,5,6,7,8,9,10)
> y = c(2,6,11,12,13)
> intersect(x,y)
[1] 2 6

ここにある一連の集合演算子:help(intersect)

于 2012-06-05T12:29:52.687 に答える
2

ある種の許容範囲が許可されるという追加要件の後に投稿されました: 1 つのセットの値を 2 番目のセットの他のすべての値に対して順番にチェックするか、または ですべてを一度に行うことができますouter()。外側の結果を論理行列として取得したら、値を参照するタスクが残りますが、expand.grid はそれを処理できるようです。

expand.grid(x,y)[outer(x,y, FUN=function(x,y) abs(x-y) < 0.01), ]
#   Var1 Var2
#2     2    2
#16    6    6

投稿後、あなたの価値観がソートされていることに気づきました。expand.grid() からのこの抽出は、ソートされていないベクトルを渡しても生き残ることがわかります。

于 2012-06-05T14:01:36.367 に答える