使用以下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.
重要的是我得到一个数字输出,而不是从树形图中读出来。
答案 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)
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