Zacznij terazZacznij za darmo

Miesiące potrafią zaskoczyć

Co powinno zwrócić wyrażenie ymd("2018-01-31") + months(1)? Czy wynik powinien być 30, 31 czy 28 dni w przyszłości? Sprawdź to. Ogólnie rzecz biorąc, lubridate zwraca ten sam dzień miesiąca w następnym miesiącu – ale ponieważ 31 lutego nie istnieje, lubridate zwraca brakującą wartość: NA.

Istnieją alternatywne operatory dodawania i odejmowania: %m+% oraz %m-%, które działają inaczej. Zamiast zwracać NA dla nieistniejącej daty, cofają się do ostatniego istniejącego dnia.

Zbadasz ich działanie, próbując wygenerować sekwencję ostatnich dni każdego miesiąca w bieżącym roku.

To ćwiczenie jest częścią kursu

Praca z datami i czasem w R

Zobacz kurs

Instrukcje do ćwiczenia

W przestrzeni roboczej znajdziesz zmienną jan_31 zawierającą datę 31 stycznia bieżącego roku.

  • Zacznij od utworzenia sekwencji od 1 do 12 okresów wynoszących 1 miesiąc.
  • Dodaj month_seq do jan_31. Zwróć uwagę, co się dzieje z miesiącami, w których 31. dzień nie istnieje.
  • Teraz dodaj month_seq do jan_31 za pomocą operatora %m+%.
  • Spróbuj odjąć month_seq od jan_31 za pomocą operatora %m-%.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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-%
___ ___ ___
Edytuj i uruchom kod