Il difficile dei mesi
Cosa dovrebbe restituire ymd("2018-01-31") + months(1)? Dovrebbe essere 30, 31 o 28 giorni nel futuro? Provalo. In generale lubridate restituisce lo stesso giorno del mese nel mese successivo, ma dato che il 31 febbraio non esiste, lubridate restituisce un valore mancante, NA.
Esistono operatori alternativi di addizione e sottrazione: %m+% e %m-% che hanno un comportamento diverso. Invece di restituire NA per una data inesistente, fanno il rollback all'ultima data esistente.
Esplorerai il loro comportamento provando a generare una sequenza dell’ultimo giorno di ogni mese di quest’anno.
Questo esercizio fa parte del corso
Lavorare con date e orari in R
Istruzioni dell'esercizio
Abbiamo messo jan_31, la data del 31 gennaio di quest’anno, nel tuo workspace.
- Inizia creando una sequenza di 1 a 12 periodi di 1 mese.
- Somma
month_seqajan_31. Nota cosa succede in qualsiasi mese in cui il 31 non esiste - Ora somma
month_seqajan_31usando l’operatore%m+%. - Prova a sottrarre
month_seqdajan_31usando l’operatore%m-%.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# A sequence of 1 to 12 periods of 1 month
month_seq <- ___
# Add 1 to 12 months to jan_31
___ + ___
# Replace + with %m+%
___ ___ ___
# Replace + with %m-%
___ ___ ___