Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中以一定高度切割树木时,如何找到簇数_R_Hierarchical Clustering_Dendrogram_Unsupervised Learning_Dendextend - Fatal编程技术网

在R中以一定高度切割树木时,如何找到簇数

在R中以一定高度切割树木时,如何找到簇数,r,hierarchical-clustering,dendrogram,unsupervised-learning,dendextend,R,Hierarchical Clustering,Dendrogram,Unsupervised Learning,Dendextend,我想找出在给定高度切割一棵树时的簇数 这棵树在R中属于“树状图”类,因此我一直在使用Dendex包来探索这一点 例如: # Create a dend: dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram # Plot it: dend %>% plot #创建一个dend: 密度%dist%>%hclust%>%as.dengram #绘制它: 密度%>%绘图 例如,我想在指定“高度=3”(请参见生成的绘图中的y

我想找出在给定高度切割一棵树时的簇数

这棵树在R中属于“树状图”类,因此我一直在使用Dendex包来探索这一点

例如:

# Create a dend:
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
# Plot it:
dend %>% plot
#创建一个dend:
密度%dist%>%hclust%>%as.dengram
#绘制它:
密度%>%绘图
例如,我想在指定“高度=3”(请参见生成的绘图中的y轴)时找到有多少簇

在高度3,我应该得到答案“2”,因为在这个高度,一条水平线应该撞击两条垂直线,因此生成两个簇

在“高度=1.5”时,答案应为“3”,因为三条线交叉等

我使用类
dendrogram
的对象,因为我的原始数据是Newick格式的,我只找到了
read.dendrogram()
函数来解析这棵树。我使用了
as.hclust()
将其转换为
hclust
类,但仍然找不到答案


另外,如果有人知道如何绘制通过指定高度生成的簇,这会有所帮助。

您想使用Dendex中的cutree吗

library(dendextend)
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
length(unique(cutree(dend, h = 1.5)))
库(Dendestend)
密度%dist%>%hclust%>%as.dengram
长度(唯一(截树(密度,h=1.5)))