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

如何在R的dplyr中计算分组数据的年度变量差值并匹配年份

解决分组计算连续年份变量差值并对齐年份的问题

你原来使用summarise的核心问题是:它会将每个分组的结果聚合为单行,直接丢失了年份维度,导致差值无法和对应年份绑定。要保留年份信息并让差值正确对齐,应该用mutate替代summarise,同时确保每组内的年份是按顺序排列的。

方案1:计算当前年份与前一年的差值(第一年显示NA)

这种方式下,差值对应当前年份相对于前一年的value变化绝对值,没有前一年数据的第一年显示NA:

df %>% 
  group_by(group) %>% 
  arrange(year) %>%  # 必须确保年份有序,否则diff计算会出错
  mutate(difference = abs(diff(value, lag = 1)))

运行结果:

groupyearvaluedifference
1201710NA
120182010
12019255
220175NA
22018105
22019155

方案2:计算当前年份到下一年的差值(最后一年显示NA)

如果希望差值对应当前年份到下一年的value变化绝对值,可以用lead()函数将差值绑定到当前年份的行:

df %>% 
  group_by(group) %>% 
  arrange(year) %>% 
  mutate(difference = abs(lead(value) - value))

运行结果:

groupyearvaluedifference
120171010
12018205
1201925NA
2201755
22018105
2201915NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:23:28