Het lastige aan maanden
Wat zou ymd("2018-01-31") + months(1) moeten opleveren? Moet het 30, 31 of 28 dagen in de toekomst zijn? Probeer het. In het algemeen geeft lubridate dezelfde dag van de maand in de volgende maand terug, maar omdat 31 februari niet bestaat geeft lubridate een ontbrekende waarde, NA, terug.
Er zijn alternatieve optel- en aftrekoperatoren: %m+% en %m-% met een ander gedrag. In plaats van een NA te retourneren voor een niet-bestaande datum, gaan ze terug naar de laatst bestaande datum.
Je onderzoekt hun gedrag door te proberen een reeks te maken voor de laatste dag van elke maand van dit jaar.
Deze oefening maakt deel uit van de cursus
Werken met datums en tijden in R
Oefeninstructies
We hebben jan_31, de datum voor 31 januari van dit jaar, in je werkruimte gezet.
- Begin met het maken van een reeks van 1 tot 12 perioden van 1 maand.
- Tel
month_seqop bijjan_31. Let op wat er gebeurt in maanden waarin de 31e niet bestaat - Tel nu
month_seqop bijjan_31met de operator%m+%. - Probeer
month_seqaf te trekken vanjan_31met de operator%m-%.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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-%
___ ___ ___