【问题标题】:R Overwrite list values from another listR覆盖另一个列表中的列表值
【发布时间】:2020-06-27 07:29:31
【问题描述】:

我需要合并两个列表,以便第二个列表的值覆盖第一个列表中的相应列表项(如果有重复项)。有没有办法在不使用 R 中的慢 for 循环的情况下做到这一点?

一个简单的例子:

A <- list("First"=1,"Second"=2)
B <- list("First"=3,"Third"=3)
C <- A
for(curr in names(B)){ C[curr] <- B[curr] }

现在C的内容是

> C
$First
[1] 3

$Second
[1] 2

$Third
[1] 3

我想要什么。但是,这可以在没有 for 循环的情况下完成吗?

【问题讨论】:

  • 另一种灵活的方式请参见?modifyListmodifyList(A, B)

标签: r list optimization merge


【解决方案1】:

您可以使用B 中的names 来更改C 中的值。

C[names(B)] <- B
C

#$First
#[1] 3

#$Second
#[1] 2

#$Third
#[1] 3

【讨论】:

  • 是的!杰出的!谢谢!
猜你喜欢
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 2012-11-11
相关资源
最近更新 更多