如何将存储在列表中的矩阵转换为 R 中的向量?
列表可能包含向量、数据框、矩阵、列表等。如果列表包含矩阵并且我们想将这些矩阵转换为向量,那么 lapply 函数可以与as.vector函数一起使用。
例如,如果我们有一个名为 LIST 的列表,其中包含矩阵,那么我们可以使用以下给定的命令将这些矩阵转换为数据帧 -
lapply(LIST,function(x) as.vector(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
要将列表中存储的矩阵转换为 R 中的向量,请将以下代码添加到上述代码段中 -
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