Comparer des intervalles et des dates-heures
Une tâche courante avec les intervalles consiste à vérifier si un instant précis se situe à l’intérieur d’un intervalle, ou s’il chevauche un autre intervalle.
L’opérateur %within% teste si la date-heure (ou l’intervalle) à gauche se trouve dans l’intervalle à droite. Par exemple, si y2001 est l’intervalle couvrant l’année 2001,
y2001 <- ymd("2001-01-01") %--% ymd("2001-12-31")
Alors ymd("2001-03-30") %within% y2001 renverra TRUE et ymd("2002-03-30") %within% y2001 renverra FALSE.
int_overlaps() effectue un test similaire, mais renverra vrai si deux intervalles se chevauchent, même partiellement.
Entraînez-vous pour découvrir quels monarques ont vu la comète de Halley autour de 1066.
Cet exercice fait partie du cours
Travailler avec les dates et heures en R
Instructions
Nous avons placé halleys, un jeu de données décrivant les apparitions de la comète de Halley, dans votre espace de travail.
- Affichez
halleyspour examiner les dates.perihelion_dateest la date à laquelle la comète est au plus près du Soleil.start_dateetend_dateindiquent la plage de dates pendant laquelle la comète est visible depuis la Terre. - Créez une nouvelle colonne,
visible, correspondant à un intervalle allant destart_dateàend_date. - Vous allez travailler sur une apparition : extrayez la 14e ligne de
halleys. - Filtrez
monarchspour ne garder que ceux pour lesquelshalleys_1066$perihelion_dateest dansreign. - Filtrez
monarchspour ne garder que ceux pour lesquelshalleys_1066$visiblechevauchereign.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Print halleys
halleys
# New column for interval from start to end date
halleys <- halleys %>%
mutate(visible = ___)
# The visitation of 1066
halleys_1066 <- halleys[__, ]
# Monarchs in power on perihelion date
monarchs %>%
filter(___) %>%
select(name, from, to, dominion)
# Monarchs whose reign overlaps visible time
monarchs %>%
filter(___) %>%
select(name, from, to, dominion)