R разрезать дендрограмму на группы с минимальным размером

Есть ли простой способ рассчитать минимальное значениеh вcut что производит группировки определенного минимального размера?

В этом примере, если я хотел кластеры, по крайней мере, с десятью членами, я должен пойти сh = 3.80:

# using iris data simply for reproducible example
data(iris)
d <- data.frame(scale(iris[,1:4]))
hc <- hclust(dist(d))
plot(hc)

cut(as.dendrogram(hc), h=3.79) # produces 5 groups; group 4 has 7 members

cut(as.dendrogram(hc), h=3.80) # produces 4 groups; no group has <10 members

Так как высоты расколов даны вhc$heightЯ мог бы создать набор значений кандидатов, используяhc$height + 0.00001 а затем перебрать порезы на каждом из них. Однако я не вижу, как разобрать размер кластераmembers внеdendrogram учебный класс. Например,cut(as.dendrogram(hc), h=3.80)$lower[[1]]$members возвращаетсяNULLне 66, как хотелось бы.

Обратите внимание, что это более простой вопрос, чемРазрезание дендрограммы на n деревьев с минимальным размером кластера в R который использует пакетdynamicTreeCut; здесь я не указываю количество деревьев, просто минимальный размер кластера. TYVM.

Ответы на вопрос(3)

Ваш ответ на вопрос