r - 使用 purrr 函数并行迭代两个嵌套列表

标签 r purrr

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

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

举个例子:

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 循环。

最佳答案

您有列表列表和 +未对列表进行矢量化,您可以使用 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

关于r - 使用 purrr 函数并行迭代两个嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41594820/

相关文章:

r - 在 purrr 中提供 tibble 名称

r - 在嵌套数据框中应用 purrr::map() 的问题

r - 导入和转换许多 csv 文件

r - 在 Ubuntu 22.04 上安装 R Studio

performance - 使用 R 从 json 文件构建数据帧时,merge() 的有效替代方法?

r - R Markdown 中的逐矩阵矩阵

r - 访问 R 中的嵌套列表

regex - 检查字符值是否是有效的 R 对象名称

r - 如何在 data.table 中进行否定/不匹配/反向搜索?

r - 将字符向量映射到 r 中的 lm 公式