在R中组合命名列表,每个列表只取一个值

在R中组合命名列表,每个列表只取一个值,r,R,简单的问题,但我似乎找不到答案: 我有两张名单,名字重叠。对于给定名称,两个列表始终具有相同的值,如下所示: list1 -> $col_a [1] "a" $col_b [1] "b" $col_c [1] "c" list2 -> $col_b [1] "b" $col_c [1] "c" $col_d [1] "d" 将它们结合起来,如中所示,可以得出以下结论: $col_a [1] "a" $col_b [1]

简单的问题,但我似乎找不到答案:

我有两张名单,名字重叠。对于给定名称,两个列表始终具有相同的值,如下所示:

list1 ->

  $col_a
  [1] "a"

  $col_b
  [1] "b"

  $col_c
  [1] "c"

list2 ->

  $col_b
  [1] "b"

  $col_c
  [1] "c"

  $col_d
  [1] "d"
将它们结合起来,如中所示,可以得出以下结论:

$col_a
[1] "a"

$col_b
[1] "b" "b"

$col_c
[1] "c" "c"

$col_d
[1] "d"
相反,我想:

$col_a
[1] "a"

$col_b
[1] "b"

$col_c
[1] "c"

$col_d
[1] "d"

如何做到这一点?

如果我理解您的要求,您可以从第一个列表中获取所有元素,并将它们与第二个列表中名称未出现在第一个列表中的所有元素组合:

c(list1, list2[!(names(list2) %in% names(list1))])

?modifyList
。你是说
lst@rawr,我每天都学到新东西。坦白地说,我从来没有想过要寻找这个函数,但它的实用性是简单明了的。@akrun,它工作得很好,谢谢你说“两个列表对于一个给定的名称总是有相同的值”,但是它们对于两个不同的名称不会有相同的值,这也是真的吗?如果不是,那么@akrun的建议可能不是你想要的。例如,对于<代码>列表1