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

如何用dplyr获取分组最大死亡数及对应火灾场景信息

优化后的dplyr解决方案

简洁核心实现

max_fatality <- fire_data |>
  group_by(Type, Description.of.fire.accident.scene) |>
  summarize(Total_fatality = sum(dead), .groups = "drop_last") |>
  slice_max(Total_fatality, n = 1) |>
  ungroup()

步骤解释

  • 先按Type和事故场景分组,计算每组的年度总死亡数Total_fatality,.groups = "drop_last"保留Type的分组状态,避免后续重复分组。
  • 调用slice_max()直接在每个Type组内筛选出总死亡数最大的行,n=1确保只取最大值对应的记录;如果存在多个场景总死亡数并列最大,可去掉n=1或添加with_ties=FALSE控制是否保留并列项。
  • 最后用ungroup()取消分组,得到结构清晰的tibble结果。

备选窗口函数实现

如果需要更灵活的逻辑判断,也可以用窗口函数标记最大值后筛选:

max_fatality <- fire_data |>
  group_by(Type, Description.of.fire.accident.scene) |>
  summarize(Total_fatality = sum(dead), .groups = "drop") |>
  group_by(Type) |>
  mutate(is_max = Total_fatality == max(Total_fatality)) |>
  filter(is_max) |>
  select(-is_max) |>
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:14:52