CommencerCommencer gratuitement

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

Afficher le cours

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 halleys pour examiner les dates. perihelion_date est la date à laquelle la comète est au plus près du Soleil. start_date et end_date indiquent la plage de dates pendant laquelle la comète est visible depuis la Terre.
  • Créez une nouvelle colonne, visible, correspondant à un intervalle allant de start_date à end_date.
  • Vous allez travailler sur une apparition : extrayez la 14e ligne de halleys.
  • Filtrez monarchs pour ne garder que ceux pour lesquels halleys_1066$perihelion_date est dans reign.
  • Filtrez monarchs pour ne garder que ceux pour lesquels halleys_1066$visible chevauche reign.

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)
Modifier et exécuter le code