Извлечение процентов из PCA в R - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть проценты ПК, которые я хочу извлечь и использовать для меток осей

Введите:

>colnames(df_out)
  [1] "PC1"   "PC2"   "PC3"   "PC4" 
>percentage
            PC1   PC2  PC3  PC4  
    PC1   52.89  0.00 0.00 0.00 
    PC2    0.00 31.69 0.00 0.00 
    PC3    0.00  0.00 6.49 0.00 
    PC4    0.00  0.00 0.00 3.82 

Желаемый вывод:

  [1] "PC1 (52.89%)"   "PC2 (31.69%)"   "PC3 (6.49%)"   
  [4] "PC4 (3.82%)" 

код

percentage <- paste(colnames(df_out), "(", paste(as.character(percentage), "%", ")", sep=""))

Приведенный выше код дает мне только первый ПК в процентах, но я также хочу ПК2.

1 Ответ

0 голосов
/ 05 ноября 2018

Один из вариантов - извлечь diag

v1 <- diag(as.matrix(percentage))
paste0(names(v1), " (", v1, "%)")
#[1] "PC1 (52.89%)" "PC2 (31.69%)" "PC3 (6.49%)"  "PC4 (3.82%)" 

данные

percentage <- structure(list(PC1 = c(52.89, 0, 0, 0), PC2 = c(0, 31.69, 0, 
 0), PC3 = c(0, 0, 6.49, 0), PC4 = c(0, 0, 0, 3.82)), 
 class = "data.frame", row.names = c("PC1", "PC2", "PC3", "PC4"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...