You need to enable JavaScript to run this app. 使用purrr::map处理按Species列嵌套的iris数据集的筛选与增列操作
优惠活动
大模型
产品
解决方案
定价
更多

使用purrr::map处理按Species列嵌套的iris数据集的筛选与增列操作

解决方法

前置依赖

需要使用tidyverse套件,内置purrr、dplyr、tidyr等所需工具,加载方式如下:

library(tidyverse)

如果你已经完成了iris数据集按Species列的分组嵌套,可直接跳过下方嵌套生成步骤。嵌套数据集的参考生成代码:

nested_iris <- iris %>% 
  group_by(Species) %>% 
  nest()

生成的nested_iris每行对应一个物种,data列存储对应物种的子数据框。

核心处理代码

使用purrr::map遍历所有分组子数据框,一次性完成筛选和新列计算:

processed_nested <- nested_iris %>% 
  mutate(processed_data = map(data, ~ .x %>% 
                                # 按条件筛选行
                                filter(Sepal.Length > 5) %>% 
                                # 新增两列求和的字段
                                mutate(Sepal_Petal_Sum = Sepal.Length + Petal.Length)))

结果导出(可选)

如果需要将处理后的嵌套数据转为普通非嵌套格式,执行unnest操作即可:

processed_iris <- processed_nested %>% 
  unnest(processed_data)

代码说明

  • map的第二个参数用公式语法定义每个子数据框的处理逻辑,.x代指当前遍历到的单个物种子数据框
  • 筛选和新增列的执行顺序可根据需求调整,若先计算新列再筛选也可正常运行
  • 处理结果单独存储在processed_data列,不会覆盖原始的分组数据,需要时可删除原始data列节省空间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 10:06:06