LoslegenKostenlos loslegen

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

Kurs anzeigen

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_seq zu jan_31. Achte darauf, was in Monaten passiert, in denen es keinen 31. gibt
  • Addiere nun month_seq zu jan_31 mit dem Operator %m+%.
  • Versuche, month_seq mit dem Operator %m-% von jan_31 zu 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-%
___ ___ ___
Code bearbeiten und ausführen