我想使用hclust
来聚类数据。但我不想使用“dist()”来生成dist对象。然后我发现我不能将对称矩阵作为距离矩阵传递给hclust
。
如何将对称矩阵转换为“dist”对象?
答案 0 :(得分:23)
听起来你已经计算了一个矩阵,并希望在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
确保矩阵中的值不相同,或距离度量而不是相似度得分。
答案 1 :(得分:0)
这是你需要的吗? dist(matrix(1:16, nrow=4))