Ошибка при настройке листьев дендрограммы с помощью dendextend (r) - PullRequest
0 голосов
/ 17 июня 2020

У меня возникла проблема при установке цветов и символов для дендрограммы листьев с помощью dendextend.

Вот матрица, которую я использовал для ее создания.

> G
                               UA Especie Extract  ppm        Root       Shoot
G. guidonia | Raiz | 2000 ppm   1  Guarea    Raiz 2000 -78.0665731 -54.5493453
G. guidonia | Raiz | 1000 ppm   2  Guarea    Raiz 1000 -59.1403123 -52.1765735
G. guidonia | Raiz | 500 ppm    3  Guarea    Raiz  500 -41.1157062 -25.5748586
G. guidonia | Raiz | 250 ppm    4  Guarea    Raiz  250 -28.0171811  -8.2309595
G. guidonia | Raiz | 125 ppm    5  Guarea    Raiz  125 -10.7954863   9.3008664
G. guidonia | Caule | 2000 ppm  6  Guarea   Caule 2000 -52.3643587 -33.6142532
G. guidonia | Caule | 1000 ppm  7  Guarea   Caule 1000 -25.5513094  -9.0017763
G. guidonia | Caule | 500 ppm   8  Guarea   Caule  500 -20.3061789 -15.7836506
G. guidonia | Caule | 250 ppm   9  Guarea   Caule  250 -11.9615204  -9.6443611
G. guidonia | Caule | 125 ppm  10  Guarea   Caule  125   0.4455149  -2.5128679
G. guidonia | Folha | 2000 ppm 11  Guarea   Folha 2000 -56.0799025   0.4172971
G. guidonia | Folha | 1000 ppm 12  Guarea   Folha 1000 -34.1666600  12.9570797
G. guidonia | Folha | 500 ppm  13  Guarea   Folha  500  -8.5670908  28.7954834
G. guidonia | Folha | 250 ppm  14  Guarea   Folha  250   1.0604723  19.1346903
G. guidonia | Folha | 125 ppm  15  Guarea   Folha  125   5.9979188  14.4165940

В которой Root и Shoot были переменными, а «Extract» и «ppm» были установлены в качестве факторов.

Этот код правильно создает следующую дендрограмму:

library(dendextend)
variavelG<-G[5:6]
as.factor(G$ppm)
dist<-dist(variavelG, method="euclidian")
cluster<-hclust(dist,method="average")
graph<-as.dendrogram(cluster)

graph %>% set("leaves_pch", c(15,13,17,19,8)  
              [sort_levels_values(as.numeric(G[,3])[order.dendrogram(graph)])]) %>% 
  set("leaves_cex", 1) %>%  
  set("leaves_col", c("red","blue","#00C549","orange","black")   
      [sort_levels_values(as.numeric(G[,3])[order.dendrogram(graph)])]) %>%
  set("labels_cex", 0.7) %>% set("labels_col", 1) %>% 
  plot(horiz=T)

Dendrogram

Здесь функции 'set' отлично работают при использовании столбцов G [, 2], то есть столбца «Espe cie», или G [, 3], столбца «Извлечь». Однако я не могу этого сделать при использовании G [, 4], который представляет собой столбец «ppm». Возвращает ошибку

Error in if (to_update_attr) { : absent value when TRUE/FALSE needed
...