R 如何将树状图分支链接到类?
我创建了一个分类,并将iris数据集分为三个类。之后,我想将类(颜色)链接到数据集中的观察值。我尝试使用一个R 如何将树状图分支链接到类?,r,cluster-analysis,hierarchical-clustering,dendrogram,dendextend,R,Cluster Analysis,Hierarchical Clustering,Dendrogram,Dendextend,我创建了一个分类,并将iris数据集分为三个类。之后,我想将类(颜色)链接到数据集中的观察值。我尝试使用一个cutree函数。因此,我得到了从1到3的类和从1到3的分支,但它们并不相同——第一个类是第三个分支,第二个类是第一个分支,第三个类是第二个分支。如何在绘图中正确链接输出类(基于剪树)和分支 > library('dendextend') > library('tidyverse') > iris <- datasets::iris > iris2 <-
cutree
函数。因此,我得到了从1到3的类和从1到3的分支,但它们并不相同——第一个类是第三个分支,第二个类是第一个分支,第三个类是第二个分支。如何在绘图中正确链接输出类(基于剪树)和分支
> library('dendextend')
> library('tidyverse')
> iris <- datasets::iris
> iris2 <- iris[,-5]
> d_iris <- dist(iris2)
> hc_iris <- hclust(d_iris, method = "complete")
> dend <- as.dendrogram(hc_iris)
> dend <- color_branches(dend, h = 3.5)
> dend <- color_labels(dend, h = 3.5)
> plot(dend)
>库('dendextend')
>库('tidyverse')
>虹膜虹膜2 d_虹膜hc_虹膜dend dend dend图(dend)
>剪切数据\u帧(class=cuts,obj=as.numeric(name(cuts)))%>%
+分组依据(类别)%>%
+总结(n())
#一个tibble:3×2
类别'n()`
1 1 50
2 2 72
3 3 28
>绘图(切割(密度,h=3.5)$上部)
Dendestend包中的cutree
有一个名为order\u clusters\u as\u data
的参数,它是一个逻辑参数,允许您按照原始数据的顺序(TRUE)或树状图上标签的顺序(FALSE)对集群进行排序。默认值为TRUE,但由于cut函数根据树状图上的顺序对分支进行编号,因此您希望顺序\u簇\u为\u data=FALSE
:
cuts <- cutree(dend, h=3.5, order_clusters_as_data=FALSE)
data_frame(class=cuts, obj=as.numeric(names(cuts))) %>%
group_by(class) %>%
summarise(n())
# A tibble: 3 × 2
class `n()`
<int> <int>
1 1 72
2 2 28
3 3 50
plot(cut(dend, h=3.5)$upper)
cuts%
分组依据(类别)%>%
总结(n())
#一个tibble:3×2
类别'n()`
1 1 72
2 2 28
3 3 50
绘图(切割(密度,h=3.5)$上部)
cuts <- cutree(dend, h=3.5, order_clusters_as_data=FALSE)
data_frame(class=cuts, obj=as.numeric(names(cuts))) %>%
group_by(class) %>%
summarise(n())
# A tibble: 3 × 2
class `n()`
<int> <int>
1 1 72
2 2 28
3 3 50
plot(cut(dend, h=3.5)$upper)