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

28

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

如何将一个对称矩阵转换成"dist"对象?

2个回答

35

听起来你已经有一个矩阵计算好了,想在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

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


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接