Kom igångKom igång gratis

Generera ett månadsgenomsnitt

Kommandot to.period() är användbart i många sammanhang, men för våra ändamål är det inte alltid meningsfullt att välja en enstaka rad som representant för hela månaden.

Ett bättre alternativ är att beräkna genomsnittliga temperaturvärden per månad. För att göra det behöver du beräkna månadsgenomsnittet manuellt med hjälp av split() och lapply(), och sedan skapa ett nytt xts-objekt med as.xts(). Det kan verka som ett komplicerat förfarande, men du har redan de färdigheter som krävs!

Xts-objektet temps_xts_2 från föregående övning finns redan inläst i din arbetsmiljö. Det finns också ett index-objekt med en vektor av datum för den första dagen i varje månad som täcks av data.

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

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

Visa kurs

Övningsinstruktioner

  • Använd split() för att dela upp mean-kolumnen i ditt temps_xts_2-objekt i månadsvis listor. Se till att ange "months" som period (argumentet f).
  • Använd lapply() för att beräkna "medelvärdet av medelvärden", det vill säga det genomsnittliga medeltemperaturvärdet per månad.
  • Använd as.xts() för att skapa ett nytt xts-objekt med den genomsnittliga månadsvis temperaturen i Boston från 2010 till 2015. För att göra det behöver du kombinera dina månadsvis mean_of_means-data med ditt månadsvis index-objekt.
  • Kontrollera slutligen att ditt nya temps_monthly-objekt har samma varaktighet och periodicitet som flights_xts.

Interaktiv övning med praktiskt arbete

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

# Split temps_xts_2 into separate lists per month
monthly_split <- split(___$___ , f = "___")

# Use lapply to generate the monthly mean of mean temperatures
mean_of_means <- lapply(___, FUN = ___)

# Use as.xts to generate an xts object of average monthly temperature data
temps_monthly <- as.xts(as.numeric(___), order.by = ___)
 
# Compare the periodicity and duration of your new temps_monthly and flights_xts 
periodicity(___)
periodicity(___)
Redigera och kör kod