La difficulté avec les mois
Qu'est-ce que ymd("2018-01-31") + months(1) devrait retourner? Doit-on se retrouver 30, 31 ou 28 jours plus tard? Essayez-le. 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 reculent jusqu'à la dernière date valide.
Vous allez explorer leur comportement en tentant de générer une séquence correspondant au dernier jour de chaque mois de cette année.
Cette activité fait partie du cours
Travailler avec les dates et les heures en R
Instructions de l’exercice
Nous avons placé jan_31, la date du 31 janvier de cette année, dans votre environnement de travail.
- Commencez par créer une séquence de 1 à 12 périodes d'un mois.
- Additionnez
month_seqàjan_31. Remarquez 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 ce code d’exemple.
# 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-%
___ ___ ___