【问题标题】:R distance matrix build from two vectors (n,1)从两个向量 (n,1) 构建的 R 距离矩阵
【发布时间】:2013-10-29 09:26:54
【问题描述】:

我有两个向量:x (n,1)y (n,1) 实数值,我想从这些向量中创建一个矩阵 M (n,n),其中包含每两对之间的距离。

【问题讨论】:

    标签: r matrix distance


    【解决方案1】:

    你可以使用outer函数

    x <- sample(5)
    y <- sample(5)
    x
    ## [1] 1 5 3 4 2
    
    y
    ## [1] 2 3 5 1 4
    
    outer(x, y, "-")
    ##      [,1] [,2] [,3] [,4] [,5]
    ## [1,]   -1   -2   -4    0   -3
    ## [2,]    3    2    0    4    1
    ## [3,]    1    0   -2    2   -1
    ## [4,]    2    1   -1    3    0
    ## [5,]    0   -1   -3    1   -2
    

    您可以将"-" 替换为任何其他可以采用 2 个向量的 FUN。

    【讨论】:

      【解决方案2】:

      看看?dist

      计算并返回通过使用指定的距离度量计算数据矩阵的行之间的距离而计算出的距离矩阵。

      例子:

      > set.seed(1) # to make it reproducible
      > dat <- data.frame(x = sample(5), y = sample(5))  # sample values
        # calculating the distance between each row
      > transform(dat, distance=apply(dat, 1, dist))  
        x y distance
      1 2 5        3
      2 5 4        1
      3 4 2        2
      4 3 3        0
      5 1 1        0
      

      注意method,它提供了几种计算距离矩阵的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-11
        • 2018-10-05
        • 2012-12-21
        • 2017-06-09
        • 2022-01-12
        • 2022-11-21
        • 1970-01-01
        相关资源
        最近更新 更多