2016-03-08 40 views
1

我已经使用hclust生成了一些数据的簇树形图,但是我需要隔离所有配对的簇,即构成仅2个数据的所有簇(第一个即使它们可能与“更高”分支上的其他数据聚集在一起)。有谁知道我该怎么做?R - 在hclust中具有特定特征的孤立簇

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

Dendrogram

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

+1

习惯提供了一个请可重现的例子 - 即代码(您尝试过的)包含虚拟数据,准备好复制粘贴 - 运行。请参阅http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – lukeA

回答

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行的结果)的

+1

非常感谢,这正是我所需要的,并且我已经想出了从这一点开始的进展情况。将来我会尝试提供一个可重复的例子。 – Rquestion550

+0

不客气。如果您认为这解决了问题,请随时在答案旁边打勾。 – lukeA

相关问题