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

如何用dplyr分组后根据某列值是否存在修改另一列的值

需求实现说明

这个需求完全可以实现,且可以通过dplyr的group_by()函数配合分组 mutate 操作完成,具体方案如下:

核心逻辑

  • 用group_by(cyl)对数据集按气缸数(cyl字段)分组
  • 分组后调用mutate()生成新字段,用any(gears == 5)判断当前分组内是否存在 gears 等于5的记录,再通过判断结果赋值yes/no即可

可直接运行的代码示例

# 加载dplyr包
library(dplyr)

# 执行分组计算生成新字段
mtcars_processed <- mtcars %>%
  group_by(cyl) %>%
  mutate(OD_gears = ifelse(any(gears == 5), "yes", "no")) %>%
  ungroup() # 若后续不需要保留分组状态可加上该行,不影响OD_gears字段结果

结果校验

按照你描述的场景,mtcars数据中每个cyl分组的gears列都至少包含一个值为5的记录,运行上述代码后mtcars_processed的OD_gears列所有值都会为yes,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:00:00