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

如何用嵌套purrr::map函数替代现有代码生成唯一组合数据框?

用嵌套purrr::map实现向量全组合数据框

完全可以用嵌套的purrr::map系列函数实现相同效果,本质是生成两个向量的笛卡尔积(所有唯一组合),代码如下:

library(tidyverse)

big <- LETTERS[1:10]
small <- letters[1:6]

# 嵌套map实现全组合数据框
map_dfr(big, function(big_val) {
  map_dfr(small, function(small_val) {
    tibble(ColBig = big_val, ColSmall = small_val)
  })
})

如果想更简洁,也可以用公式简写:

map_dfr(big, ~ map_dfr(small, ~ tibble(ColBig = .x, ColSmall = .y)))

原理说明

  • 外层map_dfr遍历big中的每一个元素,每次拿到一个大写字母;
  • 内层map_dfr针对当前的大写字母,遍历small中的所有小写字母,生成包含一组配对的单行数据框;
  • 两层map_dfr都会自动将所有生成的小数据框按行绑定,最终得到和你原代码完全一致的结果——每行都是big和small元素的唯一组合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:20:18