想象一下,我有几个具有相同结构的列表,例如:
list1 <- list(foo="abc", bar=1:3)
list2 <- list(foo="def", bar=5:7)
所以,他们的内容如下:
> list1
$foo
[1] "abc"
$bar
[1] 1 2 3
> list2
$foo
[1] "def"
$bar
[1] 4 5 6
我想将它们组合起来,所以结果应该是这样的:
> list3
$foo
[1] "abc" "def"
$bar
[1] 1 2 3 4 5 6
最好的方法是什么?我尝试了c(list1, list2)
,list(list1, list2)
等的一些组合。或者唯一的解决方案是编写我自己的函数,它将扫描两个列表中的所有成员并匹配它们的名称?
答案 0 :(得分:2)
你可以这样做:
Map(c, list1, list2)
它还可以使用两个以上的列表:
Map(c, list1, list2, list3, list4, list5)
如果您的所有列表都在更高级别的列表中,例如:
list_of_lists = list(list1, list2, list3, list4, list5)
然后你可以这样做:
do.call(Map, c(f = c, list_of_lists))