在R中以特定高度切割树时如何找到簇数
How to find the number of clusters when cutting a tree at a certain height in R
我想计算在给定高度砍树时的簇数。
树是 class "dendrogram" 在 R 中,所以我一直在使用包 dendextend 来探索这个。
示例:
# Create a dend:
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
# Plot it:
dend %>% plot
我想在指定时查找有多少个聚类,例如 "height = 3"(请参阅生成的图中的 y 轴)。
在高度 3 我应该得到答案“2”,因为在那个高度水平线应该碰到两条垂直线,因此会生成两个簇。
在 "height = 1.5" 处,答案应该是“3”,因为三条线交叉等等。
我正在使用 class dendrogram
的对象,因为我的原始数据是 Newick 格式,我只找到了 read.dendrogram()
函数来解析这棵树。我已经使用 as.hclust()
将其转换为 hclust
class 但我仍然找不到答案。
此外,如果有人知道如何绘制通过指定高度生成的簇,那将会有所帮助。
您想使用 dendextend 的 cutree
library(dendextend)
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
length(unique(cutree(dend, h = 1.5)))
我想计算在给定高度砍树时的簇数。
树是 class "dendrogram" 在 R 中,所以我一直在使用包 dendextend 来探索这个。
示例:
# Create a dend:
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
# Plot it:
dend %>% plot
我想在指定时查找有多少个聚类,例如 "height = 3"(请参阅生成的图中的 y 轴)。
在高度 3 我应该得到答案“2”,因为在那个高度水平线应该碰到两条垂直线,因此会生成两个簇。
在 "height = 1.5" 处,答案应该是“3”,因为三条线交叉等等。
我正在使用 class dendrogram
的对象,因为我的原始数据是 Newick 格式,我只找到了 read.dendrogram()
函数来解析这棵树。我已经使用 as.hclust()
将其转换为 hclust
class 但我仍然找不到答案。
此外,如果有人知道如何绘制通过指定高度生成的簇,那将会有所帮助。
您想使用 dendextend 的 cutree
library(dendextend)
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
length(unique(cutree(dend, h = 1.5)))