给定距离矩阵的层次聚类

Hierarchical Clustering given distance matrix

给定一个距离矩阵

d = matrix(c(0,2.5,4.5,2.5,0,3.4,4.5,3.4,0), nrow=3),

如何使用 R 进行层次聚类?使用

hclust(d)

它给我错误

Error in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") :  missing value where TRUE/FALSE needed.

您需要将其转换为具有 dist

的对象
d1 = as.dist(d)
hclust(d1)

如果你检查 d1

R> str(d1)
Class 'dist'  atomic [1:3] 2.5 4.5 3.4
  ..- attr(*, "Size")= int 3
  ..- attr(*, "call")= language as.dist.default(m = d)
  ..- attr(*, "Diag")= logi FALSE
  ..- attr(*, "Upper")= logi FALSE 

您可以看到 R 对其存储的内容非常聪明;它只需要下三角矩阵。