我已经使用 hclust 生成了一些数据的集群树状图,但我需要隔离所有成对的集群,即仅包含 2 条数据的所有集群(第一个集群在一起的数据),即使它们可能是与“更高”分支上的其他数据聚集在一起。有谁知道我该怎么做?
我在附图中突出显示了我想要隔离的集群,希望这能更好地解释它。
我希望能够以能够比较集群内容的方式隔离这些集群中的所有配对数据。例如查看其中哪些包含特定类型的数据。
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 行)