如何按年份计算数据集的GDP百分比变化?已算出差值求转换方法
计算年度GDP百分比变化的方法
要把差值转换为年度GDP百分比变化,核心公式是:
百分比变化 = (当年GDP - 上年GDP) / 上年GDP × 100
对应到你的R代码中,diff(df$gdp)得到的是「当年-上年」的差值,只需要除以上年的GDP数值再乘以100即可。以下是两种实现方式:
基础R实现
直接用diff和head函数匹配上年GDP:
# 计算百分比变化(结果对应1999-2007年) gdp_pct_change <- (diff(df$gdp) / head(df$gdp, -1)) * 100 # 整合为带年份的结果数据框 result_df <- data.frame( year = df$year[-1], gdp_pct_change = round(gdp_pct_change, 2) # 保留两位小数 )
tidyverse(dplyr)实现
如果你习惯用tidyverse工具链,用lag函数更直观:
library(dplyr) result_df <- df %>% mutate(gdp_pct_change = (gdp / lag(gdp) - 1) * 100) %>% filter(!is.na(gdp_pct_change)) %>% # 移除第一行无上年数据的NA mutate(gdp_pct_change = round(gdp_pct_change, 2))
结果示例
按你的数据集计算,前几行结果如下:
| year | gdp_pct_change |
|---|---|
| 1999 | 1.30 |
| 2000 | -0.45 |
| 2001 | -3.47 |
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

