我已经使用hclust来生成一些数据的聚类树形图,但我需要隔离所有配对的聚类,即所有只包含2个数据的聚类(第一个聚类在一起),即使它们可能与“更高”分支上的其他数据聚集在一起。有谁知道我怎么做到这一点?
我已经在附加图像中突出显示了我想要隔离的群集,希望能更好地解释它。
我希望能够以这种方式隔离这些集群中的所有配对数据,以便能够比较其内容上的集群。例如,查看哪些数据包含特定类型的数据。
答案 0 :(得分:3)
FWIW,您可以像这样提取“分叉”:
hc <- hclust(dist(USArrests), "ave")
plot(hc)
res <- list()
invisible(dendrapply(as.dendrogram(hc), function(x) {
if (attr(x, "members")==2)
if (all(sapply(x[1:2], is.leaf)))
res <<- c(res, list(c(attr(x[[1]], "label"), attr(x[[2]], "label"))))
x
}))
head( do.call(rbind, res) )
# [,1] [,2]
# [1,] "Florida" "North Carolina"
# [2,] "Arizona" "New Mexico"
# [3,] "Alabama" "Louisiana"
# [4,] "Illinois" "New York"
# [5,] "Michigan" "Nevada"
# [6,] "Mississippi" "South Carolina"
(只是结果的前6行)