Das knifflige an Monaten
Was sollte ymd("2018-01-31") + months(1) zurückgeben? Sollte das 30, 31 oder 28 Tage in der Zukunft sein? Probier es aus. Allgemein liefert lubridate den gleichen Tag im Monat des nächsten Monats, aber da den 31. Februar nicht gibt, gibt lubridate einen fehlenden Wert, NA, zurück.
Es gibt alternative Additions- und Subtraktionsoperatoren: %m+% und %m-% mit anderem Verhalten. Statt für ein nicht existentes Datum NA zurückzugeben, springen sie auf den letzten existierenden Tag zurück.
Du untersuchst dieses Verhalten, indem du versuchst, eine Folge für den letzten Tag in jedem Monat dieses Jahres zu erzeugen.
Diese Übung ist Teil des Kurses
Arbeiten mit Datums- und Zeitangaben in R
Anleitung zur Übung
Wir haben jan_31, das Datum für den 31. Januar dieses Jahres, in deinen Workspace gelegt.
- Beginne damit, eine Sequenz von 1 bis 12 Perioden à 1 Monat zu erstellen.
- Addiere
month_seqzujan_31. Achte darauf, was in Monaten passiert, in denen es keinen 31. gibt - Addiere nun
month_seqzujan_31mit dem Operator%m+%. - Versuche,
month_seqmit dem Operator%m-%vonjan_31zu subtrahieren.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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-%
___ ___ ___