2016-12-22 3 views
1

Я вручную разрезаю дендрограмму, созданную с hclust в R, используя identify.hclust. Возврат функции по умолчанию - это идентификаторы наблюдений в каждой группе. Мне нужна эта информация, но мне также нужно знать высоту этой группы. Есть ли способ сделать это? Большое спасибо!Получите высоту разреза с помощью ident.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") 
+0

В дополнение к 'ident()' try' locator() ' – G5W

+0

Спасибо, это поможет мне точно. Теперь мне нужно объединить его с возвратом по умолчанию – Oligg

ответ

0

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

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

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 

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

Смежные вопросы