在 GDP 資料中加入離散的移動加總
知道相鄰期間的變化量很有用,但你可能也想知道自年初以來的「總」變化。若要產生這類指標,可以使用 split-lapply-rbind 的模式。這個流程與你在前一章用來計算每月平均氣溫的做法相似。
在本練習中,你會回到本章先前使用的 gdp 資料。除了每一季的靜態 GDP 數值之外,你還想產生從上一季到下一季的 GDP 變化量(使用 diff()),以及自年初以來的 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")