如何在 R 中用 varclus 切割树状图?

How to cut the dendrogram with varclus in R?

我正在使用包Hmisc中的varclus来执行变量聚类(我的变量都是数字)。但是,我无法找到一种方法来获取有关我获得的集群的更多信息。我从 hclust 尝试了 cutree 但它没有用。 我能得到的关于聚类和其中包含的变量的唯一信息是通过可视化树,但这不是很有用...

有人知道 varcluscutree 相似的函数吗?或者另一个执行变量聚类的函数? 我是 R 的新用户,非常欢迎任何帮助!

这是我要剪切的树状图示例。

install.packages('dprep')
library(dprep)
library(datasets)

mxionosphere <- data.matrix(ionosphere)
v <- varclus(mxionosphere)
plot(v)

我想切割我获得的树状图作为输出。

非常感谢!

您仍然可以将 cutree() 用于 varclus(),您只需要先提取 hclust 对象。您还可以使用带有 hclustvar()cutreevar() 函数的 ClustOfVar 包来执行此操作:

使用Varclus():

您可以使用cutree函数,您只需要先从v中提取hclust对象。这是可行的,因为在 varclus() 函数中完成的聚类实际上是由 hclust() 完成的。参见 ?Hmisc::varclus

那么你的代码可以如下使用:

library(dprep)
library(datasets)
mxionosphere <- data.matrix(ionosphere)
v <- varclus(mxionosphere)
groups <- cutree(v$hclust, 10)

这将输出每个变量属于哪个集群,就像 hclust.

一样

使用ClustOfVar包: (https://cran.r-project.org/web/packages/ClustOfVar/ClustOfVar.pdf)

类似于varclus()hclustvar()将对变量进行层次聚类。然后,您可以使用 cutreevar() 将树状图切割成 k 组。

libary(ClustOfVar)
h<-hclustvar(mxionosphere)
clusters<-cutreevar(h, k=10)
groups<-clusters$cluster ##extract clusters values similar to cutree()