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

如何在R中使用purrr::map生成拼接后的列表结果对象

解决方案

map 会将每次调用 my_func 返回的列表作为单独元素存入结果列表,因此得到的是两层嵌套结构,要得到和手动用c()拼接一致的单层列表,只需对map返回的嵌套结果做拍平/拼接处理即可,以下是两种常用实现方式:

方法1:直接拍平嵌套列表

library(purrr)
library(stringr)

terms <- c("setosa", "virginica")
my_result_with_map <- terms %>%
  map(my_func) %>%
  list_flatten()

如果使用旧版本purrr,也可以替换为purrr::flatten(),效果一致。

方法2:模拟原有手动拼接逻辑

和手动写c(my_func("setosa"), my_func("virginica"))的逻辑完全一致,用reduce将map返回的多个列表按顺序拼接:

my_result_with_map <- terms %>%
  map(my_func) %>%
  reduce(c)

结果验证

两种写法得到的结果和原有my_result完全一致,运行identical(my_result, my_result_with_map)会返回TRUE,length(my_result_with_map)结果为100,符合预期。


内容的提问来源于stack exchange,提问作者icedcoffee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:54:01