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
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_31en utilisant l’opérateur%m+%. - Essayez de soustraire
month_seqdejan_31en 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-%
___ ___ ___