1

使用以下 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.

重要的是我得到一个数字输出而不是从树状图中读取它。

4

1 回答 1

4

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

来自?hclust

合并:一个 n-1 x 2 矩阵。“合并”的第 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
于 2013-08-13T17:24:57.200 回答