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

R语言按层级计算多年平均值增长率且不创建新数据框的方法

R计算分组累计增长率实现方案

你需要的2019-2021年累计增长率计算逻辑为 (2021年平均值 ÷ 2019年平均值 - 1)× 100%,以下两种方案均不需要创建中间数据框即可实现:

方案1:dplyr 实现

仅需输出各层级增长率结果、不修改原数据框的话,直接运行以下代码:

library(dplyr)
df %>%
  group_by(level) %>%
  summarise(累计增长率 = (average[year == 2021] / average[year == 2019] - 1) * 100)

如果需要把增长率作为新列追加到原数据框对应层级的所有行,替换为mutate即可:

df <- df %>%
  group_by(level) %>%
  mutate(累计增长率 = (average[year == 2021] / average[year == 2019] - 1) * 100) %>%
  ungroup()

方案2:Base R 实现(无需加载任何扩展包)

直接运行aggregate函数即可返回结果:

aggregate(average ~ level, df, function(x) {
  # 先按年份排序避免数据顺序异常影响计算结果
  sort_idx <- order(c(2019,2020,2021))
  (x[sort_idx][3]/x[sort_idx][1] - 1) * 100
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 19:03:03