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

Sol*_*ong 24 r distance matrix

我想用来hclust聚类数据.但我不想使用"dist()"来生成dist对象.然后我发现我不能将对称矩阵作为距离矩阵传递给hclust.

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

Jas*_*ton 26

听起来你已经有一个矩阵计算,并希望在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
Run Code Online (Sandbox Code Playgroud)

确保矩阵中的值不相同,或距离度量而不是相似度得分.