计算向量中元素的所有成对差异

时间:2018-01-25 14:16:22

标签: r

我的问题与以前的帖子密切相关:compute all pairwise differences within a vector in R

但我对这些元素的差异感兴趣而不是绝对差异,这使得所有建议的解决方案都不可行。

我知道如何使用此命令获得结果:

n <- 4
x <- c(1:4)
combn(x,2, FUN=diff)

但对于我的应用程序来说这太慢了,其中n = 500/1000 / .... 在R

中最有效的方法是什么

1 个答案:

答案 0 :(得分:5)

您可以使用outer

执行此操作
x <- c(1:4)
outer(x,x, `-`)
     [,1] [,2] [,3] [,4]
[1,]    0   -1   -2   -3
[2,]    1    0   -1   -2
[3,]    2    1    0   -1
[4,]    3    2    1    0