Множественный попарный корреляционный анализ между всеми столбцами в кадре данных в R

#r

Вопрос:

Вот демонстрационный образец фрейма данных.

 > df
       a1  a2  a3  a4  b1  b2  b3  b4
    1 480 770 601 953 469 750 588 944
    2   0   0   0   0   0   0   0   0
    3   3  13   9  12   3  12   9  12
    4   0   2   4   3   0  14   3   2
    5   0   0  11   0   0   0  11   0
    6 165 292 162 313 180 368 116 368
 

Я хочу выполнить попарный корреляционный анализ между всеми столбцами в этом фрейме данных, используя R. Результат выглядит следующим образом, где xx означает коэффициент корреляции:

      a1  a2  a3  a4  b1  b2  b3  b4
a1    1  xx  xx  xx  xx  xx  xx  xx
a2   xx   1  xx  ...
a3
a4
b1
b2
b3
b4
 

Комментарии:

1. пакет cf Функция Hmisc rcorr

Ответ №1:

Мы можем просто применить cor то, что может принимать data.frame в качестве входных данных

 cor(df1)
 

-выход

          a1        a2        a3        a4        b1        b2        b3        b4
a1 1.0000000 0.9994005 0.9965911 0.9998388 0.9992078 0.9901382 0.9878138 0.9989938
a2 0.9994005 1.0000000 0.9932938 0.9987297 0.9999332 0.9942387 0.9820741 0.9999294
a3 0.9965911 0.9932938 1.0000000 0.9978037 0.9925714 0.9754379 0.9972439 0.9919770
a4 0.9998388 0.9987297 0.9978037 1.0000000 0.9983719 0.9876824 0.9902776 0.9981116
b1 0.9992078 0.9999332 0.9925714 0.9983719 1.0000000 0.9948892 0.9808680 0.9999729
b2 0.9901382 0.9942387 0.9754379 0.9876824 0.9948892 1.0000000 0.9564724 0.9953764
b3 0.9878138 0.9820741 0.9972439 0.9902776 0.9808680 0.9564724 1.0000000 0.9799320
b4 0.9989938 0.9999294 0.9919770 0.9981116 0.9999729 0.9953764 0.9799320 1.0000000
 

данные

 df1 <- structure(list(a1 = c(480L, 0L, 3L, 0L, 0L, 165L), a2 = c(770L, 
0L, 13L, 2L, 0L, 292L), a3 = c(601L, 0L, 9L, 4L, 11L, 162L), 
    a4 = c(953L, 0L, 12L, 3L, 0L, 313L), b1 = c(469L, 0L, 3L, 
    0L, 0L, 180L), b2 = c(750L, 0L, 12L, 14L, 0L, 368L), b3 = c(588L, 
    0L, 9L, 3L, 11L, 116L), b4 = c(944L, 0L, 12L, 2L, 0L, 368L
    )), class = "data.frame", row.names = c("1", "2", "3", "4", 
"5", "6"))