从矩阵创建列表

时间:2019-10-08 06:07:10

标签: r list matrix

我遇到与this question完全相反的问题...

我本质上有一个矩阵,想要从中创建一个列表,以便每行有一个元素,每个单元都有一个子元素。

元素的名称应为行名。

与上述问题相反,从如下矩阵开始:

to setup
...
advanced-ticks 60
end

to go
...
end

我想获取如下列表:

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

2 个答案:

答案 0 :(得分:4)

R的最新版本具有仅用于此任务的功能(按行或列拆分):

m <- cbind(1:10, matrix(1:5, nrow = 10, ncol = 5, byrow = TRUE))
colnames(m) <- paste0("V", 1:6)

asplit(m, 1)
#[[1]]
#V1 V2 V3 V4 V5 V6 
# 1  1  2  3  4  5 
#
#[[2]]
#V1 V2 V3 V4 V5 V6 
# 2  1  2  3  4  5 
#
#...

答案 1 :(得分:3)

我们可以基于矩阵的split row

split(mat, row(mat))

#$`1`
#[1] 1 1 2 3 4 5

#$`2`
#[1] 2 1 2 3 4 5

#$`3`
#[1] 3 1 2 3 4 5

#$`4`
#[1] 4 1 2 3 4 5
#...

数据

mat <- matrix(c(1:10, rep(1:5, each = 10)), ncol = 6)
相关问题