如何在 R 中将存储在列表中的矩阵转换成向量?


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

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

lapply(LIST,function(x) as.vector(x))

示例

以下代码段创建矩阵−

Open Compiler
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

要将存储在 R 中列表中的矩阵转换为向量,请将以下代码添加到上述代码段中−

Open Compiler
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.vector(x))

输出

如果你将所有上述代码段作为一个程序执行,它将生成以下输出−

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

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

[[3]]
[1] 13 4 6 7 8 18 10 14 10 9 10 9 8 14 11 9 14 10 7 8 5 10 6 11 10
[26] 6 8 14 9 15 8 8 7 9 9 9 13 9 9 16

[[4]]
[1] 24 26 23 22 23 31 33 31 19 25 25 33 26 25 26 25 22 28 22 30 20 25 28 22 27
[26] 22 33 27 33 23 23 27 28 31 26 31 29 22 30 24

更新于: 2021 年 11 月 23 日

127 次浏览

开始你的职业生涯

完成课程以获得认证

开始
广告