2016-04-27 2 views
1

Учитывая расстояние матрицыИерархическая кластеризация заданное расстояние матрица

d = matrix(c(0,2.5,4.5,2.5,0,3.4,4.5,3.4,0), nrow=3), 

как сделать Иерархическая кластеризация с помощью R? Использование

hclust(d) 

он дал мне ошибку

Error in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") : missing value where TRUE/FALSE needed. 

ответ

3

Вы должны преобразовать его в объект с dist,

d1 = as.dist(d) 
hclust(d1) 

Если вы исследуете d1

R> str(d1) 
Class 'dist' atomic [1:3] 2.5 4.5 3.4 
    ..- attr(*, "Size")= int 3 
    ..- attr(*, "call")= language as.dist.default(m = d) 
    ..- attr(*, "Diag")= logi FALSE 
    ..- attr(*, "Upper")= logi FALSE 

Вы можете видеть, что R умнее того, что он хранит; для этого требуется только нижняя треугольная матрица.

+0

спасибо. Я понял, и это решило мою проблему. – Janak

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