R中两个列表的条件合并

时间:2018-03-04 03:51:53

标签: r list merge

我正在尝试组合两个相互补充的列表,其中一个包含一半值,另一个包含另一半:

v1 <- c(1,2,2,4) 
v2 <- c(NULL)
v3 <- c(1,2,2,4)
l1 <- list(v1,v2,v3)

v1b <- c(NULL) 
v2b <- c(1,2,2,4)
v3b <- c(NULL)
l2 <- list(v1b,v2b,v3b)

> l1
[[1]]
[1] 1 2 2 4
[[2]]
NULL
[[3]]
[1] 1 2 2 4

> l2
[[1]]
NULL
[[2]]
[1] 1 2 2 4
[[3]]
NULL

期望的结果是:

[[1]]
[1] 1 2 2 4
[[2]]
[1] 1 2 2 4
[[3]]
[1] 1 2 2 4
我试过几种方法。这是我最接近的:

> sapply(l1, function(x) ifelse(x == "NULL", l2[[x]], x))
[[1]]
[1] 1 2 2 4
[[2]]
logical(0)
[[3]]
[1] 1 2 2 4

感谢任何帮助。

0 个答案:

没有答案