我想知道有序向量的所有元素之间的所有可能(正)差异(仅包含正元素)。
为此,我创建了另一个使用for循环增长的向量(参见代码1)。它没有导致预期的结果" 1 4 6 3 5 2"但到了#12; 12"。当我应用代码2(这似乎等同于代码1 ......)时,我得到了所需的结果...有谁知道为什么下面的两个代码不会导致相同的结果?
代码1
a = c()
b = c(1,2,5,7)
for (i in (length(b)-1)) {
a = unique(c(a,b[(i+1):length(b)] - b[i]))
}
代码2
a = c()
b = c(1,2,5,7)
i=1
a = unique(c(a,b[(i+1):length(b)] - b[i]))
i=2
a = unique(c(a,b[(i+1):length(b)] - b[i]))
i=3
a = unique(c(a,b[(i+1):length(b)] - b[i]))
我有点困惑......
答案 0 :(得分:2)
这可以通过以下方式更简洁地完成:
as.vector(dist(a))
答案 1 :(得分:1)
一旦你知道它就会恨你自己。你需要
for (i in 1:(length(b)-1))
而不是
for (i in (length(b)-1))