CommencerCommencer gratuitement

La subtilité avec les mois

Que devrait renvoyer ymd("2018-01-31") + months(1) ? Faut‑il se placer 30, 31 ou 28 jours plus tard ? Essayez. En général, lubridate renvoie le même jour du mois dans le mois suivant, mais comme le 31 février n’existe pas, lubridate renvoie une valeur manquante, NA.

Il existe des opérateurs d’addition et de soustraction alternatifs : %m+% et %m-% qui ont un comportement différent. Plutôt que de renvoyer NA pour une date inexistante, ils reviennent au dernier jour existant.

Vous allez explorer leur comportement en essayant de générer une séquence correspondant au dernier jour de chaque mois de cette année.

Cet exercice fait partie du cours

Travailler avec les dates et heures en R

Afficher le cours

Instructions

Nous avons placé jan_31, la date du 31 janvier de cette année, dans votre espace de travail.

  • Commencez par créer une séquence de 1 à 12 périodes d’1 mois.
  • Additionnez month_seq à jan_31. Observez ce qui se passe pour les mois où le 31 n’existe pas.
  • Maintenant, additionnez month_seq à jan_31 en utilisant l’opérateur %m+%.
  • Essayez de soustraire month_seq de jan_31 en utilisant l’opérateur %m-%.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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-%
___ ___ ___
Modifier et exécuter le code