【发布时间】:2019-10-06 16:30:47
【问题描述】:
我正在尝试将具有相同名称的矩阵组合到列表的列表中。为简单起见,我以一个包含两个列表的列表为例。
A = matrix(c(1,2,3,4),2)
B = matrix(c(1,2,3,4,5,6),2)
list1 = list(A=A,B=B)
A = matrix(c(1,2,2,1,1,1),3)
B = matrix(c(1,2,3,3,2,2,1,1,1),3)
list2 = list(A=A,B=B)
mylist=list(list1,list2)
mylist
[[1]]
[[1]]$A
[,1] [,2]
[1,] 1 3
[2,] 2 4
[[1]]$B
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[[2]]
[[2]]$A
[,1] [,2]
[1,] 1 1
[2,] 2 1
[3,] 2 1
[[2]]$B
[,1] [,2] [,3]
[1,] 1 3 1
[2,] 2 2 1
[3,] 3 2 1
我希望按行组合所有 A 矩阵并按行组合所有 B 矩阵。请注意,实际上我有一堆列表,例如 list1 和 list2,因此我更喜欢为此使用一些循环样式的操作。
我尝试简单地合并所有列表(即示例中的 list1 和 list2),但我仍然无法合并单独的列表。
> do.call(c, mylist)
$A
[,1] [,2]
[1,] 1 3
[2,] 2 4
$B
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$A
[,1] [,2]
[1,] 1 1
[2,] 2 1
[3,] 2 1
$B
[,1] [,2] [,3]
[1,] 1 3 1
[2,] 2 2 1
[3,] 3 2 1
谢谢!
【问题讨论】: