Comparer des intervalles et des dates-heures
Une tâche courante avec les intervalles consiste à vérifier si un moment précis se trouve à 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 retournera TRUE et ymd("2002-03-30") %within% y2001 retournera FALSE.
int_overlaps() effectue un test similaire, mais retournera vrai si deux intervalles se chevauchent, même en partie.
Exercez-vous pour découvrir quels monarques ont vu la comète de Halley autour de 1066.
Cette activité fait partie du cours
Travailler avec les dates et les heures en R
Instructions de l’exercice
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 où la comète est la plus près du Soleil.start_dateetend_datesont l'intervalle de dates où la comète est visible depuis la Terre. - Créez une nouvelle colonne
visible, qui est un intervalle allant destart_dateàend_date. - Vous travaillerez avec une apparition ; extrayez la 14e ligne de
halleys. - Filtrez
monarchspour ceux oùhalleys_1066$perihelion_dateest à l'intérieur dereign. - Filtrez
monarchspour ceux oùhalleys_1066$visiblechevauchereign.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)