modifyList
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 [email protected]
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)
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.