如何在R中将变量及其相关性的组合将相关性矩阵转换为数据帧?
R中的cor函数可帮助我们从数据帧或矩阵中找到相关矩阵,但其输出始终是预期的矩阵。我们可能希望将该矩阵转换为一个数据帧,其中包含变量及其相关值的所有组合。可以通过使用as.table读取相关矩阵并将该表转换为as.data.frame数据帧来完成。
示例
请看以下数据帧-
x1<-rnorm(20,0.5)x2<-rnorm(20,1.5)
x3<-rnorm(20,2)
x4<-rnorm(20,2.5)
x5<-rnorm(20,3)
df1<-data.frame(x1,x2,x3,x4,x5)
df1
输出结果
x1 x2 x3 x4 x51 1.01241819 1.6263879 1.0964170 3.589784 3.522261
2 -0.07203883 2.1113559 2.0853013 2.601339 2.838322
3 -0.40573390 0.1282928 2.6869231 1.456986 3.653687
4 -0.10169987 1.5902541 2.7803958 3.327289 2.746533
5 -0.55939989 -0.2573458 2.7141833 3.860593 1.779362
6 0.20375614 0.4087237 1.5304197 3.013231 3.345237
7 2.14060964 2.1761154 2.9756934 2.502471 2.741643
8 -0.92393329 2.5695567 0.7567924 1.423767 4.843986
9 0.19310980 1.9560434 3.5774616 3.516024 2.958461
10 0.47001355 1.4118910 2.1074962 3.665488 2.309292
11 0.43043496 -0.1977611 1.5456945 2.880366 2.745999
12 0.16766544 1.1394380 1.6436382 1.460217 4.168087
13 0.05919660 0.3138259 3.2329019 2.195498 3.102219
14 -0.27852409 1.8581345 1.0134072 1.267640 2.249398
15 1.00489665 1.3941321 0.9242278 3.652576 2.713325
16 -0.47215942 1.6161371 3.8449875 3.999393 3.470586
17 1.47659684 0.7814303 3.0221436 3.003357 2.675620
18 1.17223424 0.8835198 2.2660368 3.529340 3.374545
19 -0.30223845 3.1234578 2.5363014 2.290078 2.470584
20 0.09605103 1.9410643 -0.4640839 2.381046 1.690303
计算相关矩阵并将其转换为具有变量及其相关组合的数据框-
示例
Correlation_Matrix_as_Data_Frame_Of_Combinations<-as.data.frame(as.table(cor(df1)))
Correlation_Matrix_as_Data_Frame_Of_Combinations
输出结果
Var1 Var2 Freq1 x1 x1 1.00000000
2 x2 x1 -0.04107413
3 x3 x1 0.05626009
4 x4 x1 0.29686054
5 x5 x1 -0.14522277
6 x1 x2 -0.04107413
7 x2 x2 1.00000000
8 x3 x2 -0.15925174
9 x4 x2 -0.17870287
10 x5 x2 0.06219340
11 x1 x3 0.05626009
12 x2 x3 -0.15925174
13 x3 x3 1.00000000
14 x4 x3 0.31640783
15 x5 x3 0.03577516
16 x1 x4 0.29686054
17 x2 x4 -0.17870287
18 x3 x4 0.31640783
19 x4 x4 1.00000000
20 x5 x4 -0.31792430
21 x1 x5 -0.14522277
22 x2 x5 0.06219340
23 x3 x5 0.03577516
24 x4 x5 -0.31792430
25 x5 x5 1.00000000
让我们看另一个例子-
示例
y1<-sample(1:10,20,replace=TRUE)y2<-sample(1:5,20,replace=TRUE)
y3<-sample(1:12,20,replace=TRUE)
y4<-sample(1:15,20,replace=TRUE)
y5<-sample(1:20,20,replace=TRUE)
df2<-data.frame(y1,y2,y3,y4,y5)
df2
输出结果
y1 y2 y3 y4 y51 6 4 3 12 10
2 5 3 7 14 10
3 1 1 11 7 16
4 1 4 2 12 11
5 9 4 11 8 15
6 5 2 11 6 17
7 8 4 8 2 17
8 4 2 6 5 17
9 1 5 11 2 2
10 9 4 5 2 12
11 6 3 9 14 8
12 9 5 9 3 20
13 9 5 5 3 13
14 4 1 7 15 15
15 9 1 5 8 3
16 6 4 7 7 11
17 1 5 5 13 2
18 9 2 6 15 15
19 6 3 12 11 8
20 7 1 9 3 6
示例
Data_Frame_Of_Combinations_of_Correlations<-as.data.frame(as.table(cor(df2)))Data_Frame_Of_Combinations_of_Correlations
输出结果
Var1 Var2 Freq1 y1 y1 1.00000000
2 y2 y1 0.02121834
3 y3 y1 -0.02311103
4 y4 y1 -0.24280927
5 y5 y1 0.28378665
6 y1 y2 0.02121834
7 y2 y2 1.00000000
8 y3 y2 -0.16734209
9 y4 y2 -0.23599572
10 y5 y2 -0.08963607
11 y1 y3 -0.02311103
12 y2 y3 -0.16734209
13 y3 y3 1.00000000
14 y4 y3 -0.24489247
15 y5 y3 0.12218753
16 y1 y4 -0.24280927
17 y2 y4 -0.23599572
18 y3 y4 -0.24489247
19 y4 y4 1.00000000
20 y5 y4 -0.16567707
21 y1 y5 0.28378665
22 y2 y5 -0.08963607
23 y3 y5 0.12218753
24 y4 y5 -0.16567707
25 y5 y5 1.00000000
以上是 如何在R中将变量及其相关性的组合将相关性矩阵转换为数据帧? 的全部内容, 来源链接: utcz.com/z/357605.html