1. Nauka
  2. /
  3. Kursy
  4. /
  5. Praca z datami i czasem w R

Connected

ćwiczenie

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.

Instrukcje

100 XP

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-%.