Subtilitatea lunilor
Ce ar trebui să returneze ymd("2018-01-31") + months(1)? 30, 31 sau 28 de zile în viitor? Încearcă. În general, lubridate returnează aceeași zi din lună în luna următoare, dar deoarece 31 februarie nu există, lubridate returnează o valoare lipsă, NA.
Există operatori alternativi de adunare și scădere: %m+% și %m-%, care se comportă diferit. În loc să returneze NA pentru o dată inexistentă, aceștia revin la ultima dată existentă.
Vei explora comportamentul lor încercând să generezi o secvență pentru ultima zi din fiecare lună a acestui an.
Acest exercițiu face parte din cursul
Lucrul cu date și ore în R
Instrucțiuni pentru exercițiu
Am plasat jan_31, data de 31 ianuarie a acestui an, în spațiul tău de lucru.
- Începe prin a crea o secvență de la 1 la 12 perioade de câte 1 lună.
- Adaugă
month_seqlajan_31. Observă ce se întâmplă cu lunile în care ziua de 31 nu există. - Acum adaugă
month_seqlajan_31folosind operatorul%m+%. - Încearcă să scazi
month_seqdinjan_31folosind operatorul%m-%.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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-%
___ ___ ___