计算向量 R 中值之间的距离
calculating distance between values in vector R
我有以下多重集 X,我想在其中找到所有数字之间的距离。有什么方法可以将它集成到 FOR 循环中,这样如果我得到一个不同大小的多重集,我就不必像下面那样手动执行它了吗?
这个例子的最终答案是 [0,2, 2, 3, 3, 4, 5, 6, 7, 8, 10](排序)
X=c(0,10,8,3,6)
L=length(X)
print(L)
##for(i in seq(from=1, to=L )){}
print(abs(X[1]-X[2]), abs(X[1]-X[3]),
abs(X[1]-X[4]), abs(X[1]-X[5]),
abs(X[1]-X[6]),
abs(X[2]-X[3]), abs(X[2]-X[4]),
abs(X[2]-X[5]), abs(X[2]-X[6]),
abs(X[3]-X[4]), abs(X[3]-X[5]),
abs(X[3]-X[6]),
abs(X[4]-X[5]), abs(X[4]-X[6]),
abs(X[5]-X[6])
)
您可以将此向量视为列向量并应用 dist
:
sort(dist(X))
# [1] 2 2 3 3 4 5 6 7 8 10
我有以下多重集 X,我想在其中找到所有数字之间的距离。有什么方法可以将它集成到 FOR 循环中,这样如果我得到一个不同大小的多重集,我就不必像下面那样手动执行它了吗?
这个例子的最终答案是 [0,2, 2, 3, 3, 4, 5, 6, 7, 8, 10](排序)
X=c(0,10,8,3,6)
L=length(X)
print(L)
##for(i in seq(from=1, to=L )){}
print(abs(X[1]-X[2]), abs(X[1]-X[3]),
abs(X[1]-X[4]), abs(X[1]-X[5]),
abs(X[1]-X[6]),
abs(X[2]-X[3]), abs(X[2]-X[4]),
abs(X[2]-X[5]), abs(X[2]-X[6]),
abs(X[3]-X[4]), abs(X[3]-X[5]),
abs(X[3]-X[6]),
abs(X[4]-X[5]), abs(X[4]-X[6]),
abs(X[5]-X[6])
)
您可以将此向量视为列向量并应用 dist
:
sort(dist(X))
# [1] 2 2 3 3 4 5 6 7 8 10