【发布时间】:2021-08-23 11:45:09
【问题描述】:
假设我有一个包含 9 个 2 x 2 矩阵的列表,定义如下:
mat_list <- list(matrix(1, 2, 2), matrix(2, 2, 2), matrix(3, 2, 2),
matrix(4, 2, 2), matrix(5, 2, 2), matrix(6, 2, 2),
matrix(7, 2, 2), matrix(8, 2, 2), matrix(9, 2, 2))
我想将这些矩阵合并为一个 6 x 6 矩阵。它看起来像这样:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 4 4 7 7
[2,] 1 1 4 4 7 7
[3,] 2 2 5 5 8 8
[4,] 2 2 5 5 8 8
[5,] 3 3 6 6 9 9
[6,] 3 3 6 6 9 9
我可以使用以下代码完成这项任务:
do.call( cbind, list( do.call( rbind, mat_list[1:3]),
do.call( rbind, mat_list[4:6]),
do.call( rbind, mat_list[7:9])) )
但是如何将其推广到非常大的矩阵列表中呢?写出do.call函数列表太乏味了。
【问题讨论】: