我想找到在给定高度砍伐一棵树时簇的数量。
该树属于 R 中的“dendrogram”类,因此我一直在使用包 dendextend 来探索这一点。
示例:
# Create a dend:
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
# Plot it:
dend %>% plot
我想知道当我指定“height = 3”时有多少个簇(请参见生成的图中的 y 轴)。
在高度 3 处,我应该得到答案“2”,因为在该高度处,一条水平线应该碰到两条垂直线,因此会生成两个簇。
在“height = 1.5”处,答案应该是“3”,因为三条线交叉等等。
我正在使用dendrogram
类的对象,因为我的原始数据采用Newick格式,并且我只找到了read.dendrogram()
函数来解析该树。我已使用 as.hclust()
将其转换为 hclust
类,但我仍然找不到答案。
此外,如果有人知道如何绘制通过指定高度生成的簇,那将会有所帮助。
最佳答案
您想使用 denextend 中的 cutree
library(dendextend)
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
length(unique(cutree(dend, h = 1.5)))
关于r - 如何在R中找到在特定高度砍树时的簇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57255666/