按成员名称加入列表

时间:2014-11-24 00:44:33

标签: r

想象一下,我有几个具有相同结构的列表,例如:

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)等的一些组合。或者唯一的解决方案是编写我自己的函数,它将扫描两个列表中的所有成员并匹配它们的名称?

1 个答案:

答案 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))