在R中,如何组合组件两个列表哪些组件具有相同的名称?

tfl*_*tre 4 r list

这是我的数据:

l1 <- list(a=1, b=2)
l2 <- list(a=10, b=20)
Run Code Online (Sandbox Code Playgroud)

我想以组件方式组合它们.例如,如果我想将l1的每个组件的值添加到l2中相同组件的值,我会这样做:

l <- list(a=l1$a+l2$a, b=l1$b+l2$b)
Run Code Online (Sandbox Code Playgroud)

如果现在我有几个组件,我可以这样做:

l <- list()
for(c in names(l1))
    l[[c]] <- l1[[c]] + l2[[c]]
Run Code Online (Sandbox Code Playgroud)

但是,我的列表可能有很多组件,我可能需要使用两个以上的列表(每个列表总是具有与其他列表相同的组件名称).

由于R中不建议使用"for"循环,有没有办法使用lapply,merge或者......?

谢谢!

Jos*_*ich 8

看来你正在寻找Map:

identical(l, Map("+", l1, l2))
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)

这与以下相同:

mapply("+", l1, l2, SIMPLIFY=FALSE)
Run Code Online (Sandbox Code Playgroud)