在stats::cutree()
接受一个hclust
对象并将其切成给定数量的簇的同时,我正在寻找一个需要给定元素数量并尝试设置{{1} }。换句话说:返回带有k
元素的第一个集群。
例如:
搜索具有n
个对象的第一个集群。
n = 9
library(psych)
data(bfi)
x <- bfi
hclust.res <- hclust(dist(abs(cor(na.omit(x)))))
cutree.res <- cutree(hclust.res, k = 2)
cutree.table <- table(cutree.res)
cutree.table
# no cluster with n = 9 elements
> cutree.res
1 2
23 5
产生
k = 3
是否有比遍历此方法更方便的方法?
谢谢
答案 0 :(得分:0)
您可以轻松地为此编写代码,只通过树状图而不是循环调用裁刀即可。
只需逐个执行合并并注意群集大小。然后保持您“喜欢”的那个最好。
请注意,可能没有这样的解决方案。例如,在一维数据集-11 -10 +10 +11上,以合并顺序切割树状图将返回仅包含1,2或4个元素的簇。因此,您也必须处理这种情况。