如何组合R中列表的列表中的矩阵?
我试图将列表中具有相同名称的矩阵组合在一起。为了简单起见,我使用一个包含两个列表的列表作为示例如何组合R中列表的列表中的矩阵?,r,list,matrix,R,List,Matrix,我试图将列表中具有相同名称的矩阵组合在一起。为了简单起见,我使用一个包含两个列表的列表作为示例 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]
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,所以我更喜欢使用一些循环样式的操作
我试图简单地合并所有列表,即示例中的列表1和列表2,但仍然无法合并单独的列表
> 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
谢谢 将mapply与rbind一起使用,如下所示:
do.call(mapply, c("rbind", mylist))
给予:
$A
[,1] [,2]
[1,] 1 3
[2,] 2 4
[3,] 1 1
[4,] 2 1
[5,] 2 1
$B
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[3,] 1 3 1
[4,] 2 2 1
[5,] 3 2 1
将mapply与rbind一起使用,如下所示:
do.call(mapply, c("rbind", mylist))
给予:
$A
[,1] [,2]
[1,] 1 3
[2,] 2 4
[3,] 1 1
[4,] 2 1
[5,] 2 1
$B
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[3,] 1 3 1
[4,] 2 2 1
[5,] 3 2 1
这里有一个带tidyverse的选项
这里有一个带tidyverse的选项
漂亮,好极了漂亮,好极了