Aan de slagGa gratis aan de slag

Intervallen en datetimes vergelijken

Een veelvoorkomende taak met intervallen is nagaan of een bepaald tijdstip binnen het interval valt, of dat het overlapt met een ander interval.

De operator %within% test of de datetime (of het interval) aan de linkerkant binnen het interval aan de rechterkant valt. Als y2001 bijvoorbeeld het interval is dat het jaar 2001 beslaat,

y2001 <- ymd("2001-01-01") %--% ymd("2001-12-31")

Dan geeft ymd("2001-03-30") %within% y2001 TRUE terug en ymd("2002-03-30") %within% y2001 FALSE.

int_overlaps() voert een vergelijkbare test uit, maar geeft true terug als twee intervallen elkaar op enig punt overlappen.

Oefen om te ontdekken welke vorsten Halley's komeet rond 1066 hebben gezien.

Deze oefening maakt deel uit van de cursus

Werken met datums en tijden in R

Cursus bekijken

Oefeninstructies

We hebben halleys, een gegevensset met verschijningen van Halley's komeet, aan je werkruimte toegevoegd.

  • Print halleys om de gegevens te bekijken. perihelion_date is de datum waarop de komeet het dichtst bij de zon staat. start_date en end_date zijn het datumbereik waarin de komeet vanaf de aarde zichtbaar is.
  • Maak een nieuwe kolom, visible, die een interval vormt van start_date tot end_date.
  • Je werkt met één verschijning: haal de 14e rij uit halleys.
  • Filter monarchs tot de gevallen waar halleys_1066$perihelion_date binnen reign valt.
  • Filter monarchs tot de gevallen waar halleys_1066$visible overlapt met reign.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren