Kom igångKom igång gratis

Lägg till en diskret rullande summa i BNP-data

Det är användbart att känna till förändringen från en period till nästa, men ibland vill du veta den totala förändringen sedan årets början. För att skapa den typen av indikator kan du använda mönstret split-lapply-rbind. Processen liknar den som användes för att beräkna månatliga medeltemperaturer i föregående kapitel.

I den här övningen återvänder du till gdp-data som användes tidigare i kapitlet. Förutom de statiska BNP-värdena per kvartal vill du skapa ett mått på BNP-förändringen från ett kvartal till nästa (med diff()) samt en rullande summa av ackumulerad BNP-förändring hittills under året (med split(), lapply() och rbind()).

Den här övningen är en del av kursen

Fallstudie: Analys av tidsseridata för städer i R

Visa kurs

Övningsinstruktioner

  • Använd diff() för att beräkna en enkel kvartalsvis förändring i gdp. Ange kolumnen gdp och sätt lag till 1 period (i det här fallet 1 kvartal). Spara resultatet i ditt gdp-objekt som quarterly_diff.
  • Nu när du har ett mått på kvartalsvis BNP-förändring är nästa steg att dela upp quarterly_diff-data per år med split(). I anropet till split() ska du ange kolumnen quarterly_diff i gdp och sätta argumentet f till "years" (med citattecken).
  • Använd lapply() på den nyligen delade datan. För att beräkna en kumulativ summa för varje år, sätt argumentet FUN till cumsum (utan citattecken).
  • Använd do.call() för att rbind:a ditt gdpchange_ytd-data tillbaka till ett xts-objekt.
  • Använd slutligen plot.xts() för att undersöka den ackumulerade BNP-förändringen hittills under året (gdpchange_xts).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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")
Redigera och kör kod