为 GDP 数据添加离散滚动求和
了解相邻两个时期之间的变动幅度固然有用,但您可能还想知道自年初以来的"累计"变动。要生成这类指标,您可以使用 split-lapply-rbind 模式。该过程与上一章中生成月均气温的流程类似。
在本练习中,您将回到本章前面使用过的 gdp 数据。除了每个季度的静态 GDP 数值外,您还希望生成两个指标:一是季度间的 GDP 变动(使用 diff()),二是年内至今(year-to-date)GDP 变动的滚动求和(使用 split()、lapply() 和 rbind())。
本练习是课程的一部分
案例研究:在 R 中分析城市时间序列数据
练习说明
- 使用
diff()计算gdp的简单季度差分。请务必指定gdp列,并将lag设为1个时期(此处为 1 个季度)。将结果保存到gdp对象中的quarterly_diff。 - 现在已有季度 GDP 变动的度量,下一步使用
split()按年份拆分quarterly_diff数据。调用split()时,请指定gdp的quarterly_diff列,并将参数f设为"years"(带引号)。 - 对新拆分的数据使用
lapply()。为在每个年份内计算累计和,将参数FUN设为cumsum(不带引号)。 - 使用
do.call()将gdpchange_ytd通过 rbind 合并回一个 xts 对象。 - 最后,使用
plot.xts()查看年内至今的 GDP 变动(gdpchange_xts)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Add a quarterly difference in gdp
gdp$quarterly_diff <- diff(___$___, lag = ___, differences = ___)
# Split gdp$quarterly_diff into years
gdpchange_years <- split(___$___, f = "___")
# Use lapply to calculate the cumsum each year
gdpchange_ytd <- lapply(___, FUN = ___)
# Use do.call to rbind the results
gdpchange_xts <- do.call(rbind, ___)
# Plot cumulative year-to-date change in GDP
plot.xts(___, type = "h")