Aan de slagGa gratis aan de slag

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

Cursus bekijken

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_seq op bij jan_31. Let op wat er gebeurt in maanden waarin de 31e niet bestaat
  • Tel nu month_seq op bij jan_31 met de operator %m+%.
  • Probeer month_seq af te trekken van jan_31 met 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-%
___ ___ ___
Code bewerken en uitvoeren