如果要使用矩阵的列作为向量,则可以将它们转换为向量列表。要将矩阵列转换为向量列表,我们首先需要将矩阵转换为数据框,然后才能将其读取为列表。这可以作为as.list(as.data.frame(matrix_name))完成。
考虑下面的矩阵-
> M<-matrix(1:25,nrow=5) > M [,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25
将矩阵M列转换为向量-
> V<-as.list(as.data.frame(M)) > V $V1 [1] 1 2 3 4 5 $V2 [1] 6 7 8 9 10 $V3 [1] 11 12 13 14 15 $V4 [1] 16 17 18 19 20 $V5 [1] 21 22 23 24 25 > str(V) List of 5 $ V1: int [1:5] 1 2 3 4 5 $ V2: int [1:5] 6 7 8 9 10 $ V3: int [1:5] 11 12 13 14 15 $ V4: int [1:5] 16 17 18 19 20 $ V5: int [1:5] 21 22 23 24 25
检查V1,V2,V3,V4和V5是否为向量-
> is.vector(V$V1) [1] TRUE > is.vector(V$V2) [1] TRUE > is.vector(V$V3) [1] TRUE > is.vector(V$V4) [1] TRUE > is.vector(V$V5) [1] TRUE
将非平方矩阵列转换为矢量列表-
> M_new<-matrix(1:50,nrow=5) > M_new [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 6 11 16 21 26 31 36 41 46 [2,] 2 7 12 17 22 27 32 37 42 47 [3,] 3 8 13 18 23 28 33 38 43 48 [4,] 4 9 14 19 24 29 34 39 44 49 [5,] 5 10 15 20 25 30 35 40 45 50 > V_new<-as.list(as.data.frame(M_new)) > V_new $V1 [1] 1 2 3 4 5 $V2 [1] 6 7 8 9 10 $V3 [1] 11 12 13 14 15 $V4 [1] 16 17 18 19 20 $V5 [1] 21 22 23 24 25 $V6 [1] 26 27 28 29 30 $V7 [1] 31 32 33 34 35 $V8 [1] 36 37 38 39 40 $V9 [1] 41 42 43 44 45 $V10 [1] 46 47 48 49 50