[英]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.