如何以与for循环类似的方式使用两个不同列表的lapply?

时间:2017-12-09 20:29:59

标签: r lapply purrr

我想迭代R中的两个列表并使用lapply或purrr的map函数应用函数。这段代码显示了我想要使用for循环做什么。

nums_a <- list(c(1,2,3),c(5,6,7))
nums_b <- list(c(13,42,63),c(75,76,27))

nums_c <- list(NULL)
for (i in seq_along(nums_a)) {
 nums_c[[i]] <- nums_a[[i]]+nums_b[[i]]
}
nums_c
[[1]]
[1] 14 44 66

[[2]]
[1] 80 82 34

1 个答案:

答案 0 :(得分:2)

purrr中,可以使用map2完成此操作。

library(purrr)

map2(nums_a, nums_b, ~.x + .y)
# [[1]]
# [1] 14 44 66
# 
# [[2]]
# [1] 80 82 34