我猜这已存在于R的某个地方,所以也许你可以指点我.
我有两个数字向量,A和B.
A <- c(1,2,3)
B <- c(2,3,4)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个函数,它可以完成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
Run Code Online (Sandbox Code Playgroud)
如果它返回差异就好了,因为它可以很容易地转换.
这样的功能是否已经存在?
Gle*_*n_b 10
outer可能是你想要的功能.但是,它返回一个矩阵,所以我们需要得到一个向量.这是许多人的一种方式:
a <- 1:3
b <- 2:4
as.vector(outer(a,b,">"))
[1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
(这不是你指定的顺序;但是,它是一致的顺序)
也:
as.vector(t(outer(a,b,">")))
[1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
现在差异:
> as.vector(outer(a,b,"-"))
[1] -1 0 1 -2 -1 0 -3 -2 -1
Run Code Online (Sandbox Code Playgroud)
我发现这outer非常有用.我经常使用它.