Začněte nyníZačněte zdarma

Záludnost měsíců

Co by mělo vrátit ymd("2018-01-31") + months(1)? Bude výsledek 30, 31, nebo 28 dní dopředu? Zkus to. Obecně platí, že lubridate vrátí stejný den v měsíci v následujícím měsíci – jenže 31. února neexistuje, takže lubridate vrátí chybějící hodnotu NA.

Existují alternativní operátory sčítání a odčítání: %m+% a %m-%, které se chovají jinak. Místo vrácení NA pro neexistující datum se posunou zpět na poslední existující den.

Jejich chování prozkoumáš tak, že se pokusíš vygenerovat sekvenci posledních dnů každého měsíce v tomto roce.

Toto cvičení je součástí kurzu

Práce s daty a časy v R

Zobrazit kurz

Pokyny k cvičení

V pracovním prostoru máš připravený objekt jan_31 s datem 31. ledna tohoto roku.

  • Začni tím, že vytvoříš sekvenci period od 1 do 12 měsíců.
  • Přičti month_seq k jan_31. Všimni si, co se stane s měsíci, ve kterých 31. den neexistuje.
  • Přičti month_seq k jan_31 pomocí operátoru %m+%.
  • Zkus odečíst month_seq od jan_31 pomocí operátoru %m-%.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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-%
___ ___ ___
Upravit a spustit kód