R-使用覆盖和递归合并列表

标签 r list recursion

假设我有两个名称列表,

a = list( a=1, b=2, c=list( d=1, e=2 ), d=list( a=1, b=2 ) )
b = list( a=2, c=list( e=1, f=2 ), d=3, e=2 )

我想递归合并这些列表,如果第二个参数包含冲突值,则覆盖条目。 IE。预期的输出将是
$a
[1] 2

$b
[1] 2

$c
$c$d
[1] 1

$c$e
[1] 1

$c$f
[1] 2

$d
[1] 3

$e
[1] 2

有什么提示吗?

最佳答案

我不确定在这里是否需要自定义功能。有一个函数utils::modifyList()可以执行完全相同的操作!有关更多信息,请参见modifyList

a <- list( a=1, b=2, c=list( d=1, e=2 ), d=list( a=1, b=2 ) )
b <- list( a=2, c=list( e=1, f=2 ), d=3, e=2 )

modifyList(a, b) # updates(modifies) 'a' with 'b'

这给出了以下内容
$a
[1] 2

$b
[1] 2

$c
$c$d
[1] 1

$c$e
[1] 1

$c$f
[1] 2

$d
[1] 3

$e
[1] 2 

关于R-使用覆盖和递归合并列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811501/

相关文章:

r - 仅选择包含 R 中两列表的列表的元素

python - 找出所有的方法来决定 list 分为三

python - 在列表中查找项目索引

c - 使用递归查找具有相同数量的 0's and 1' 的最大子数组的长度

c++ - 从 C++ 调用 R 函数

r - 为什么替换将 noquote 文本更改为 R 中的字符串?

python - 如何使列表中的变量可识别为数字?

c - 如何使用递归函数计算从 1 开始到 n 结束的连续整数的总和

Haskell 提示/为什么这不是线性缩放?

r - 如何在标题周围添加填充?