我有两个列表x和y:
x <- list(id1 = list(a = list(t = 5)), id2 = list(a = list(t = 1), b = list(t = 3)), id3 = list(a = list(t = 1), b = list(t = 2)))
y <- list(b = list(k = 7))
我需要修改x列表并从y列表中添加相应的“ b”元素以获得z列表:
z <- list(id1 = list(a = list(t = 5)), id2 = list(a = list(t = 1), b = list(t = 3, k = 7)),
id3 = list(a = list(t = 1), b = list(t = 2, k = 7)))
我尝试使用list_modify(x, y)
,并list_merge(x, !!!y)
从purrr
包中,但得到错误的结果。如何在R中执行此操作?
在这种情况下,您可以执行以下操作:
result <- lapply(x, function(i) {
if("b" %in% names(i)) i$b <- append(i$b, y$b); i;
})
这样的
identical(result, z)
#> [1] TRUE
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句