如何在 R 中将矩阵列转换为向量列表?
如果要使用矩阵的列作为一个向量,则可以将其转换为向量列表。要将矩阵列转换为向量列表,我们首先需要将矩阵转换为数据框,然后可以将其作为列表读取。这可以通过 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
广告