Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何组合R中列表的列表中的矩阵?_R_List_Matrix - Fatal编程技术网

如何组合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的选项


漂亮,好极了漂亮,好极了