如何在R中将列表中存储的矩阵转换为数据框?


列表可能包含向量、数据框、矩阵等。如果列表包含矩阵,并且我们想将这些矩阵转换为数据框,则可以使用lapply函数以及as.data.frame函数。

例如,如果我们有一个名为LIST的列表包含矩阵,那么我们可以使用以下命令将这些矩阵转换为数据框:

lapply(LIST,function(x) as.data.frame(x))

示例

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

M1<-matrix(rpois(25,5),ncol=5)
M2<-matrix(rpois(25,5),ncol=5)
M3<-matrix(rpois(40,10),ncol=2)
M4<-matrix(rpois(40,25),ncol=2)
List<-list(M1,M2,M3,M4)
List

输出

创建了以下矩阵:

[[1]]
    [,1] [,2] [,3] [,4] [,5]
[1,]  3   8    8    7   6
[2,] 10   7    4    4   2
[3,]  3   3    4    5   6
[4,]  2   7    4   10   3
[5,] 10   3    5    7   4

[[2]]
    [,1] [,2] [,3][,4][,5]
[1,]  6   8   3    6   4
[2,]  6   3   6    3   3
[3,]  6   5   7    7   4
[4,]  1   2   3    6  10
[5,]  7   3   5    6   6

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

[[4]]
     [,1][,2]
[1,]  24  20
[2,]  26  25
[3,]  23  28
[4,]  22  22
[5,]  23  27
[6,]  31  22
[7,]  33  33
[8,]  31  27
[9,]  19  33
[10,] 25  23
[11,] 25  23
[12,] 33  27
[13,] 26  28
[14,] 25  31
[15,] 26  26
[16,] 25  31
[17,] 22  29
[18,] 28  22
[19,] 22  30
[20,] 30  24

现在,要将列表中存储的矩阵转换为数据框,请将以下代码添加到上述代码片段中:

M1<-matrix(rpois(25,5),ncol=5)
M2<-matrix(rpois(25,5),ncol=5)
M3<-matrix(rpois(40,10),ncol=2)
M4<-matrix(rpois(40,25),ncol=2)
List<-list(M1,M2,M3,M4)
lapply(List,function(x) as.data.frame(x))

输出

如果将以上所有代码片段作为一个程序执行,则会生成以下输出:

[[1]]
   V1 V2 V3 V4 V5
1  3  8  8  7  6
2 10  7  4  4  2
3  3  3  4  5  6
4  2  7  4 10  3
5 10  3  5  7  4

[[2]]
  V1 V2 V3 V4 V5
1 6  8  3  6  4
2 6  3  6  3  3
3 6  5  7  7  4
4 1  2  3  6 10
5 7  3  5  6  6

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

[[4]]
   V1  V2
1  24  20
2  26  25
3  23  28
4  22  22
5  23  27
6  31  22
7  33  33
8  31  27
9  19  33
10 25  23
11 25  23
12 33  27
13 26  28
14 25  31
15 26  26
16 25  31
17 22  29
18 28  22
19 22  30
20 30  24

更新于:2021年11月5日

浏览量:555

启动你的职业生涯

完成课程获得认证

开始学习
广告