Получите высоту среза, используя identity.hclust()

Я вручную вырезаю дендрограмму, созданную из hclust в R, используя identify.hclust. По умолчанию функция возвращает идентификаторы наблюдений в каждой группе. Мне нужна эта информация, но мне также нужно знать рост этой группы. Есть ли способ сделать это? Большое спасибо!

Воспроизводимые данные:

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")

person Oligg    schedule 22.12.2016    source источник
comment
В дополнение к identify() попробуйте locator()   -  person G5W    schedule 22.12.2016
comment
Спасибо, это точно мне поможет. Теперь мне нужно объединить его с возвратом по умолчанию   -  person Oligg    schedule 22.12.2016


Ответы (1)


Я подозреваю, что вы могли бы получить ответ с помощью двух функций heights_per_k.dendrogram и get_branches_heights из пакета R дендекстенд.

Вот небольшой пример:

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 

Дает ли это вам инструменты для получения ответа?

person Tal Galili    schedule 22.12.2016