Добавление дискретной скользящей суммы к данным ВВП
Знать величину изменения от одного периода к другому полезно, однако иногда важнее понимать суммарное изменение с начала года. Для построения такого показателя можно воспользоваться паттерном split-lapply-rbind. Этот подход аналогичен тому, что применялся для расчёта средних месячных температур в предыдущей главе.
В этом упражнении вы вернётесь к данным gdp, с которыми работали ранее в этой главе. Помимо статических значений ВВП за каждый квартал, вам нужно вычислить изменение ВВП от квартала к кварталу (с помощью diff()), а также скользящую сумму накопленного изменения ВВП с начала года (с помощью split(), lapply() и rbind()).
Это упражнение является частью курса
Практический пример: анализ городских временных рядов в R
Инструкции к упражнению
- Используйте
diff(), чтобы вычислить простое квартальное изменениеgdp. Обязательно укажите столбецgdpи задайтеlagравным1периоду (в данном случае — 1 квартал). Сохраните результат в объектgdpкакquarterly_diff. - Теперь, когда у вас есть мера квартального изменения ВВП, разбейте данные
quarterly_diffпо годам с помощьюsplit(). В вызовеsplit()укажите столбецquarterly_diffобъектаgdpи задайте аргументfравным"years"(в кавычках). - Примените
lapply()к полученным разбитым данным. Чтобы вычислить накопленную сумму в каждом году, задайте аргументFUNравнымcumsum(без кавычек). - Используйте
do.call(), чтобы объединить данныеgdpchange_ytdобратно в объект xts с помощьюrbind(). - Наконец, используйте
plot.xts(), чтобы визуализировать накопленное с начала года изменение ВВП (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")