我想在给定高度切割一棵树时找到簇的数量。
树在R中属于“树状图”类,因此我一直在使用dendextend包进行探索。
示例:
# Create a dend:
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
# Plot it:
dend %>% plot
当我指定例如“ height = 3”(请参见生成的图的y轴)时,我想查找多少个簇。
在高度3处,我应该得到答案“ 2”,因为在该高度处,一条水平线应击中两条垂直线,因此会生成两个簇。
在“高度= 1.5”时,答案应该为“ 3”,因为三行交叉等等。
我正在使用类dendrogram
的对象,因为我的原始数据是Newick格式的,并且我只找到了read.dendrogram()
函数来解析此树。我已经使用as.hclust()
将此类转换为hclust
类,但仍然找不到答案。
此外,如果有人知道如何通过指定高度来绘制生成的聚类,那将会有所帮助。
答案 0 :(得分:1)
您要使用来自dendextend的美眉
library(dendextend)
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
length(unique(cutree(dend, h = 1.5)))