我正在使用hclust
手动剪切从R中的identify.hclust
创建的树形图。
函数的默认返回值是每个组中观察值的ID。
我需要这些信息,但我也需要知道这个组的高度。这有什么办法吗?非常感谢!
可重复数据:
set.seed(1)
dat = rnorm(100,0,1)
hca = hclust(dist(dat))
plot(hca, hang=-1, sub="", xlab="", labels=F)
heightsAndIDs = identify(hca) #Gives only IDs
例如,我使用identify
将树形图切割到以下高度,并希望获得分支的合并高度:
segments(3,2,8, col="red")
segments(15,1,18, col="green")
segments(20,1,24,col="blue")
segments(38,1.5,45,col="purple")
segments(75, 1.5, 82,col="cyan")
答案 0 :(得分:0)
我怀疑你可以从R包dendextend中的两个函数heights_per_k.dendrogram
和get_branches_heights
得到答案。
这是一个小例子:
set.seed(1)
dat = rnorm(100,0,1)
hca = hclust(dist(dat))
library(dendextend)
例如:
> sort(heights_per_k.dendrogram(dend))[1:7]
100 99 98
0.00002485728 0.00010400211 0.00020365009
97 96 95
0.00118445439 0.00180321776 0.00215161572
94
0.00230368982
> sort(heights_per_k.dendrogram(dend), T)[1:7]
1 2 3 4 5
4.6163377 4.6162976 3.1585161 1.8779138 1.3384979
6 7
1.1705453 0.9620798
这能为您提供获得答案的工具吗?