While stats::cutree()
takes an hclust
-object and cuts it into a given number of clusters, I'm looking for a function that takes a given amount of elements and attempts to set k
accordingly. In other words: Return the first cluster with n
elements.
For example:
Searching for the first cluster with n = 9
objects.
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
while k = 3
yields
cutree.res <- cutree(hclust.res, k = 3)
# three clusters, whereas cluster 2 contains the required amount of objects
> cutree.table
cutree.res
1 2 3
14 9 5
Is there a more convenient way then iterating over this?
Thanks