r - 按成员姓名加入列表

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

最佳答案

你可以这样做:

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

关于r - 按成员姓名加入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096298/

相关文章:

r - 更快的替代 object.size?

c - C 中的 Uniroot 函数

r - dplyr 和多重线性模型

r - 如何将图例向上移动到更靠近 ggplot2 中的 x 轴标签

r - 如何绘制不连续数据的折线图?

r - 将 bool 列添加到 data.frame 中,指示特定列是否全部为 NA

r - data.table 默认外部连接与 setkey,计算行(列出键的频率)

r - 在 R( future )中进行多处理时如何避免填充 RAM?

R - 添加具有几乎相同名称的列并使用正确的列名称保存

r - 如何根据R中的时间间隔对数据进行分组