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

时间:2011-06-29 19:45:39

标签: list r

这是我的数据:

l1 <- list(a=1, b=2)
l2 <- list(a=10, b=20)

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

l <- list(a=l1$a+l2$a, b=l1$b+l2$b)

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

l <- list()
for(c in names(l1))
    l[[c]] <- l1[[c]] + l2[[c]]

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

由于R中不建议使用“for”循环,是否有任何方法可以使用lapply,merge或者......?

谢谢!

1 个答案:

答案 0 :(得分:8)

好像你正在寻找Map

identical(l, Map("+", l1, l2))
# [1] TRUE

与以下内容相同:

mapply("+", l1, l2, SIMPLIFY=FALSE)