如何在 R 数据框或矩阵中查找变量之间的相关性序列?


为了在 R 数据框或矩阵中查找变量之间的相关性序列,我们可以使用 corrr 包中的 correlate 和 stretch 函数。

例如,如果我们有一个名为 df 的数据框,那么我们可以使用以下命令查找 df 中变量之间的相关性序列:

df%>%
correlate() %>%
stretch() %>%
arrange(r)

示例 1

以下代码片段创建了一个示例数据框:

x1<-rnorm(20)
x2<-rnorm(20,5,0.2)
x3<-rnorm(20,5,0.005)
x4<-rnorm(20,2,0.14)
df1<-data.frame(x1,x2,x3,x4)
df1

创建了以下数据框:

       x1         x2       x3      x4
1   0.6808273  5.100547 5.008409 1.903267
2  -0.8982181  5.236966 5.003451 1.885443
3   1.7004141  4.938643 4.998515 2.078969
4  -0.5556164  5.086777 5.000830 1.836611
5  -0.3700080  5.180180 4.999621 2.066981
6  -0.6171065  5.218265 5.006482 2.012696
7   1.3167304  4.886068 5.005309 1.697461
8  -1.0291898  5.082370 4.996527 1.876241
9   0.3552824  5.354599 5.004550 2.010306
10 -0.8318924  4.943031 4.999007 2.097666
11 -0.3643198  5.287603 4.996394 2.119303
12 -0.6422962  4.864442 4.998594 2.105324
13  3.3631619  4.675183 4.999328 1.878981
14  1.7794186  4.769273 4.997484 2.027005
15 -0.5102582  5.140516 5.001077 1.830695
16  1.1652416  4.586822 4.996408 2.101790
17 -0.4535449  5.046426 5.004014 1.906526
18 -2.0166857  4.666686 4.996425 2.011478
19 -0.9543124  4.956333 5.002519 1.984997
20  1.5101443  5.273918 4.988374 1.876615

要加载 corrr 包并查找 df1 中变量之间的相关性序列,请将以下代码添加到上面的代码片段中:

library(corrr)
df1%>%
+ correlate() %>%
+ stretch() %>%
+ arrange(r)

Correlation method: 'pearson'
Missing treated using: 'pairwise.complete.obs'

# A tibble: 16 x 3

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

    x     y    r
 <chr> <chr> <dbl>
1  x1   x2  -0.284
2  x2   x1  -0.284
3  x3   x4  -0.263
4  x4   x3  -0.263
5  x1   x4  -0.155
6  x4   x1  -0.155
7  x1   x3  -0.137
8  x3   x1  -0.137
9  x2   x4  -0.127
10 x4   x2  -0.127
11 x2   x3   0.185
12 x3   x2   0.185
13 x1   x1   NA
14 x2   x2   NA
15 x3   x3   NA
16 x4   x4   NA

示例 2

以下代码片段创建了一个矩阵:

M1<-matrix(rpois(100,10),ncol=5)
M1

创建了以下矩阵:

      [,1][,2][,3][,4][,5]
[1,]  10   4   13   4   9
[2,]  14  12   13  15  11
[3,]  11   6   15  10  16
[4,]   6  10    5   9   9
[5,]   9   6   20  10  10
[6,]   7  10    6  10  12
[7,]  13  15    6  13   8
[8,]   3  14   11   9   8
[9,]  13  10    7   9  11
[10,] 10   7   16  13  12
[11,]  8   7    9   7  14
[12,]  7   6    9  16   6
[13,]  7  14    7   7  12
[14,]  8   7    7   5  10
[15,]  4   9   13  11   7
[16,] 15   9   14  11   8
[17,]  9  12    7   9  15
[18,] 11  10    3  14  10
[19,]  8   5   13  17  11
[20,]  7  13   10  12   7

要查找 M1 中变量之间的相关性序列,请将以下代码添加到上面的代码片段中:

M1%>%
+ correlate()%>%
+ stretch() %>%
+ arrange(r)

Correlation method: 'pearson'
Missing treated using: 'pairwise.complete.obs'

# A tibble: 25 x 3

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

    x    y     r
 <chr> <chr> <dbl>
1  V2  V3  -0.473
2  V3  V2  -0.473
3  V4  V5  -0.233
4  V5  V4  -0.233
5  V2  V5  -0.136
6  V5  V2  -0.136
7  V1  V2  -0.0355
8  V2  V1  -0.0355
9  V3  V5   0.0261
10 V5  V3   0.0261

更新于:2021年11月23日

237 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告