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

R中sum函数返回值异常:分组统计地震总数结果不符预期

问题原因与解决方法

你遇到的核心问题是分组状态未解除:
在执行group_by(mag)后,数据框始终保持按mag分组的状态——哪怕经过unique()、arrange()操作,分组信息依然保留。此时调用mutate(total=sum(count_per_mag))时,sum()会在每个mag分组内部单独计算,而每个分组里的count_per_mag是该组的地震数量(单值),所以sum()的结果自然等于当前组的count_per_mag值。

修复代码

只需在计算总和前添加ungroup()解除分组,让sum()作用于整个数据集:

quakes |> 
  group_by(mag) |> 
  mutate(count_per_mag=n())|> 
  select(-lat, -long, -depth,-stations)|> 
  unique()|> 
  arrange(mag)|>
  ungroup() |> # 关键步骤:解除分组
  mutate(total=sum(count_per_mag))

更简洁的替代方案

其实统计不同震级的地震数量,用count()函数可以一步完成,还能避免分组残留问题:

quakes |> 
  count(mag, name = "count_per_mag") |> 
  arrange(mag) |> 
  mutate(total = sum(count_per_mag))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:06:15