我遇到与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
答案 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)