我猜这已存在于R的某个地方,所以也许你可以指点我。
我有两个数字向量,A和B.
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
如果它返回差异就好了,因为它可以很容易地转换。
这样的功能是否已经存在?
答案 0 :(得分: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
非常有用。我经常使用它。