R - 在hclust

时间:2016-03-08 11:45:19

标签: r hclust

我已经使用hclust来生成一些数据的聚类树形图,但我需要隔离所有配对的聚类,即所有只包含2个数据的聚类(第一个聚类在一起),即使它们可能与“更高”分支上的其他数据聚集在一起。有谁知道我怎么做到这一点?

我已经在附加图像中突出显示了我想要隔离的群集,希望能更好地解释它。

Dendrogram

我希望能够以这种方式隔离这些集群中的所有配对数据,以便能够比较其内容上的集群。例如,查看哪些数据包含特定类型的数据。

1 个答案:

答案 0 :(得分:3)

FWIW,您可以像这样提取“分叉”:

hc <- hclust(dist(USArrests), "ave")
plot(hc)

enter image description here

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行)