modifyList {utils} | R Documentation |
Recursively Modify Elements of a List
Description
Modifies a possibly nested list recursively by changing a subset of elements at each level to match a second list.
Usage
modifyList(x, val, keep.null = FALSE)
Arguments
x |
A named |
val |
A named list with components to replace corresponding
components in |
keep.null |
If |
Value
A modified version of x
, with the modifications determined as
follows (here, list elements are identified by their names). Elements
in val
which are missing from x
are added to x
.
For elements that are common to both but are not both lists
themselves, the component in x
is replaced (or possibly
deleted, depending on the value of keep.null
) by the one in
val
. For common elements that are in both lists, x[[name]]
is replaced by modifyList(x[[name]], val[[name]])
.
Author(s)
Deepayan Sarkar Deepayan.Sarkar@R-project.org
Examples
foo <- list(a = 1, b = list(c = "a", d = FALSE))
bar <- modifyList(foo, list(e = 2, b = list(d = TRUE)))
str(foo)
str(bar)