7

これはすでにRのどこかにあると思いますので、指摘してもらえるかもしれません。

AとBの2つの数値ベクトルがあります。

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

AとBの間で可能なそれぞれの比較を行い、それらの比較のT/Fのベクトルを返すような関数を探しています。

したがって、この場合、1> 2、1> 3、1> 4、2、2、2> 3、2> 4、3> 2、3> 4と比較され、次のようになります。

FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE

それは簡単に変換できるので、違いを返すことができれば問題ありません。

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

4

1 に答える 1

11

outerおそらくあなたが望む機能です。ただし、行列を返すため、ベクトルを取得する必要があります。多くの方法の1つは次のとおりです。

 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それはとても便利だと思います。普段使っています。

于 2013-03-25T22:05:11.537 に答える