5

我正在玩一些purrr功能并发现(令我高兴的是)purrr::at_depth(.x, .depth, .f, ...)它是purrr::map(x, . %>% map(fun)).

问题: 当我有两个要并行迭代的嵌套列表时,是否有类似的功能或正确的“ -方式”来做同样的事情purrr

举个例子:

x <- list(list(10, 20), list(30, 40))
y <- list(list(1, 2), list(3, 4))

a <- list()
for(i in seq_along(x)) {
   a[[i]] <- map2(x[[i]], y[[i]], `+`) 
}

这可行,但它相当脏,我想避免 for 循环。

4

1 回答 1

5

您有列表列表并且+未针对列表进行矢量化,您可以使用map2两次,第一次map2同时循环通过 x,y,第二map2次以元素方式添加子列表:

map2(x, y, map2, `+`)

#[[1]]
#[[1]][[1]]
#[1] 11

#[[1]][[2]]
#[1] 22


#[[2]]
#[[2]][[1]]
#[1] 33

#[[2]][[2]]
#[1] 44
于 2017-01-11T15:37:41.140 回答