您可以使用
heights_per_k.dendrogram
函数来自
the dendextend package
,以获得各种k切割的高度。
例如:
## Not run:
hc <- hclust(dist(USArrests[1:4,]), "ave")
dend <- as.dendrogram(hc)
library(dendextend)
dend_h <- heights_per_k.dendrogram(dend)
par(mfrow = c(1,2))
plot(dend)
plot(dend, ylim = c(dend_h["3"], dend_h["1"]))
在您的案例中:
set.seed(2016-01-16)
df <- as.data.frame(matrix(abs(rnorm(2*20000)), nrow = 20000))
mydist <- dist(df)
my.hc <- hclust(mydist, method = "average")
hcd <- as.dendrogram(my.hc)
library(dendextend)
library(dendextendRcpp)
dend_h <- heights_per_k.dendrogram(hcd) # (this can take some time)
plot(hcd, ylim = c(dend_h["43"], dend_h["1"]))