2013-03-25 11 views
7

これはRのどこかに既に存在していると推測しています。Rは2つのベクトルのペアごとの比較を行うための関数

私は2つの数値のベクトル、AとB

A <- c(1,2,3) 
B <- c(2,3,4) 

私はAとBの間にそれぞれの可能な比較を行うような何かを行う機能を探している、とのT/Fのベクトルを返していますがありますそれらの比較。

したがって、この場合には、それは比較になる:> 2 1を次に> 3 1、次いで> 4 1、次いで2,2次いで> 3 2次に> 4 2次に> 2 3次に> 4 3とリターン:

FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE 

簡単に変換できるので、違いが返っても問題ありません。

このような機能は既に存在しますか?

+1

厳密に言えば、これはCVのトピックではなく、stackoverflowのトピックです。それにフラグを立てると、司会者がそこに移動します。 –

答えて

10

outerは、おそらく必要な機能です。しかし、それは行列を返すので、ベクトルを取得する必要があります。ここでは、多くの一つの方法です:

a <- 1:3 
b <- 2:4 
as.vector(outer(a,b,">")) 
[1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE 

は(それはあなたがが指定した順序ではありません、それはしかし、である、一貫性のため)また

:違いのために今

as.vector(t(outer(a,b,">"))) 
[1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE 

> as.vector(outer(a,b,"-")) 
[1] -1 0 1 -2 -1 0 -3 -2 -1 

outerは非常に便利です。私は定期的に使用します。

+0

うまくいった。ありがとうございました。 – evt

+0

少し修正して追加情報を追加しました。 –

+0

副作用として 'c'を使うのではなく、' as.vector'を使うともっと読みやすいコードになります。 – A5C1D2H2I1M1N2O1R2T1

関連する問題