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
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_seqkjan_31. Všimni si, co se stane s měsíci, ve kterých 31. den neexistuje. - Přičti
month_seqkjan_31pomocí operátoru%m+%. - Zkus odečíst
month_seqodjan_31pomocí 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-%
___ ___ ___