如何在R中打印层次聚类的顺序?

时间:2013-08-13 17:08:22

标签: r dendrogram hclust

使用以下6个意大利城市之间的距离矩阵:

0   662 877 255 412 996
662 0   295 468 268 400
877 295 0   754 564 138
255 468 754 0   219 869
412 268 564 219 0   669
996 400 138 869 669 0

R输出它聚集在它们中的顺序: 例如,单链接会告诉您:

City 3 and City 6, followed by
City 4 and City 5, followed by
City 1 to City 4 and City 5, finally City 2 to City 3 and City 6.

重要的是我得到一个数字输出,而不是从树形图中读出来。

1 个答案:

答案 0 :(得分:4)

我不知道您问题的完整解决方案,但也许您可以使用merge返回的hclust值。

来自?hclust

  

合并:n-1乘2矩阵。 'merge'的第i行描述了合并          群集的第i步的群集。如果元素j在          该行为负,然后观察-j在此合并          阶段。如果j为正,则合并为集群          在算法的(较早的)阶段j形成。从而          “合并”中的否定条目表示聚合          单身人士和积极的条目表明聚集          非单身。

你的例子:

d <- as.dist(read.table(textConnection("
0   662 877 255 412 996
662 0   295 468 268 400
877 295 0   754 564 138
255 468 754 0   219 869
412 268 564 219 0   669
996 400 138 869 669 0")))

hc <- hclust(d, method="single")

plot(hc)

hcplot

hc$merge

#     [,1] [,2]  # from bottom up
#[1,]   -3   -6  # City 3 and 6
#[2,]   -4   -5  # City 4 and 5
#[3,]   -1    2  # join City 1 and City 4/5
#[4,]   -2    3  # join City 2 and City 1/4/5
#[5,]    1    4  # join City 3/6 and City 1/2/4/5