在树形图R中选择低于特定高度的簇,但仅当簇大于1时才选择

时间:2018-04-01 16:41:58

标签: r cluster-analysis hierarchical-clustering hclust

我正在寻找一些简单的代码,它们将选择低于阈值高度的特定聚类并突出显示它们(用方框或颜色)。 到目前为止,我已经使用了cutree,它选择了我追求的簇,但它也选择了所有大小为1的簇。

Image of all clusters selected

我已经设法使用哪个来选择我真正想要的群集,但由于这只是我所拥有的数据的一小部分,我不想手动选择这些。有没有办法可以砍树,但只选择大于1的簇?

Image of the wanted clusters selected

这是我目前正在使用的代码:

plot(hClust,hang = -1,cex=0.5)
abline(h= 0.0018,col = 'blue')

ct <- cutree(hClust, h = 0.0018)
clust <- rect.hclust(hClust, h=0.0018, which = c(1,2,4,8,23))

1 个答案:

答案 0 :(得分:1)

您不提供数据,因此我将使用内置的mtcars数据进行说明。当然,高度与你的不同。设置与您的问题相同:

hClust =hclust(dist(mtcars))
plot(hClust,hang = -1, cex=0.8)
abline(h= 28,col = 'blue')

First Cutoff

现在,我们可以在不打印(rect.hclust)的情况下致电border=0,以获取编号为rect.hclust的群集。然后我们可以选择具有多个点的聚类,并将框放在那些聚类周围。

clust <- rect.hclust(hClust, h=28, border=0)
NumMemb = sapply(clust, length)
clust <- rect.hclust(hClust, h=28, which=which(NumMemb>1))

Boxed tree