【问题标题】:calculating distance between values in vector R计算向量 R 中值之间的距离
【发布时间】:2018-08-07 14:46:39
【问题描述】:

我有以下多重集 X,我想在其中找到所有数字之间的距离。有没有办法将它集成到 FOR LOOP 中,这样如果我得到不同大小的多重集,我就不必像下面那样手动执行它?

本例的最终答案是 [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])  

        )

【问题讨论】:

  • 你真的需要循环吗?也许abs(apply(combn(c(0,10,8,3,6),2), 2, diff)) 更短

标签: r loops vector rstudio nested-function


【解决方案1】:

您可以将此向量视为列向量并应用dist

sort(dist(X))
# [1]  2  2  3  3  4  5  6  7  8 10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2020-03-13
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多