Я попросил нескольких разных экспертов отсортировать 92 объекта на основе их сходства. На основе их ответов я построил матрицу несходства 92 х 92. в R я исследовал эту матрицу с помощью следующих команд:
cluster1 <- hclust(as.dist(DISS_MATRIX), method = "average")
plot(cluster1, cex=.55)
Чтобы выделить кластеры, я хотел нарисовать вокруг них прямоугольники:
rect.hclust(cluster1, k = 3, border = "red")
Результат выглядит следующим образом:
Однако, когда объекты имеют более длинные имена («AAAAAAAAAAAAAAAA43» вместо «A43»), форматирование отключено:
rownames(DISS_MATRIX) <- paste0(rep("AAAAAAAAAAAAAAAAAAAAAAAAAAAA",92),1:92)
colnames(DISS_MATRIX) <- paste0(rep("AAAAAAAAAAAAAAAAAAAAAAAAAAAA",92),1:92)
cluster1 <- hclust(as.dist(DISS_MATRIX), method = "average")
plot(cluster1, cex=.55)
rect.hclust(cluster1, k = 3, border = "red")
Это видно из полученной дендрограммы.
Кажется, что прямоугольники переместились к концу дендограммы. Не хорошо. Я предполагаю, что этот сбой произошел из-за длинных имен 92 объектов в матрице различий. Это также может показаться не очень актуальным. Просто убедитесь, что ваши объекты имеют достаточно короткие имена.
Однако по разным причинам я хочу, чтобы мои объекты имели свои оригинальные (то есть, по общему признанию, длинные) имена. Этот график для презентации и поэтому я не хочу работать с кодами. Я также не хочу использовать какой-либо другой пакет, так как обычно hclust довольно прост в использовании. Однако я не нахожу способа позиционировать прямоугольники в команде rect.hclust. Следовательно, что я могу сделать, чтобы расположить прямоугольники на дендограмме, даже если имена объектов длинные? Спасибо.