繁体   English   中英

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

[英]In R, how to combine component-wise two lists which components have the same names?

这是我的数据:

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 或 by... 之类的方法来做到这一点?

谢谢!

看来您正在寻找Map

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

这与以下内容相同:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM