ÎncepețiÎncepe gratuit

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

Vezi cursul

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_seq la jan_31. Observă ce se întâmplă cu lunile în care ziua de 31 nu există.
  • Acum adaugă month_seq la jan_31 folosind operatorul %m+%.
  • Încearcă să scazi month_seq din jan_31 folosind 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-%
___ ___ ___
Editează și rulează codul