You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在purrr中使用map2处理输入含列表的列表的场景?

使用purrr处理嵌套列表与普通列表的对应运算

先回顾map2的基础用法——它可以对两个长度相同的列表,按位置逐一取元素传入函数运算:

library(purrr)

listA <- list(1, 2, 3)
listB <- list(4, 5, 6)

map2(listA, listB, sum)

当遇到其中一个输入是嵌套列表(列表的列表),另一个是普通列表时,比如:

listA <- list(list(1, 2, 3),
              list(4, 5, 6))

listB <- list(7, 8, 9)

要得到如下嵌套结构的运算结果:

list(list(8, 10, 12),
     list(11, 13, 15))

可以通过**嵌套使用map和map2**实现:

# 遍历listA中的每个子列表,对每个子列表和listB做map2运算
result <- map(listA, ~map2(.x, listB, sum))

print(result)

逻辑说明

外层map负责遍历listA中的每一个子列表,内层map2则将当前子列表的元素与listB对应位置的元素逐一传入sum函数相加,最终生成与listA结构一致的嵌套结果列表。

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:05:31