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

基于含特定字符串的条件使用Dplyr对数据进行分组处理

实现方案

你可以直接使用dplyr的group_by+summarise组合实现需求,核心逻辑是判断分组内是否存在Type为R的值,存在就返回R,否则返回O。

构造示例数据集

library(dplyr)
df <- tribble(
  ~Year, ~ID, ~Type,
  2000, 1, "O",
  2000, 1, "O",
  2000, 1, "O",
  2000, 1, "O",
  2000, 1, "R",
  2017, 5, "O",
  2017, 5, "O",
  2000, 8, "R",
  2000, 8, "O",
  2002, 8, "O"
)

分组计算代码

result <- df %>%
  group_by(Year, ID) %>%
  summarise(Type = ifelse(any(Type == "R"), "R", "O"), .groups = "drop")

结果验证

运行后得到的输出和预期完全一致:

YearIDType
20001R
20008R
20028O
20175O

代码说明

  • group_by(Year, ID) 按指定的两个字段完成分组
  • any(Type == "R") 判断当前分组内是否存在Type为R的记录,返回布尔值
  • ifelse 根据判断结果返回对应的Type取值
  • .groups = "drop" 参数用来取消输出结果的分组状态,避免后续操作出现不必要的分组提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:05