【问题标题】:How to convert a symmetric matrix into "dist" object?如何将对称矩阵转换为“dist”对象?
【发布时间】:2013-07-26 09:24:06
【问题描述】:

我想使用hclust 对数据进行聚类。但我不想使用“dist()”来生成 dist 对象。然后我发现我无法将对称矩阵作为距离矩阵传递给hclust

如何将对称矩阵转换为“dist”对象?

【问题讨论】:

    标签: r matrix distance


    【解决方案1】:

    听起来您已经计算了一个矩阵,并希望在 hclust 中使用它。就像@shadow 说的,你可以使用as.dist(yourMatrix) 转换成dist 格式。

    给定一个对称的距离表:

    > yourMatrix<-matrix(c(1,2,3,4,2,1,2,1,3,2,1,3,4,1,3,1), nrow=4)
         [,1] [,2] [,3] [,4]
    [1,]    1    2    3    4
    [2,]    2    1    2    1
    [3,]    3    2    1    3
    [4,]    4    1    3    1
    >
    >as.dist(yourMatrix)
      1 2 3
    2 2    
    3 3 2  
    4 4 1 3
    

    确保矩阵中的值是相异性或距离度量而不是相似性分数。

    【讨论】:

      【解决方案2】:

      这是你需要的吗? dist(matrix(1:16, nrow=4))

      【讨论】:

        猜你喜欢
        • 2015-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多