IniziaInizia gratis

Confrontare intervalli e datetime

Un'operazione comune con gli intervalli è verificare se un certo momento cade dentro l'intervallo oppure se due intervalli si sovrappongono.

L'operatore %within% verifica se il datetime (o l'intervallo) sul lato sinistro è contenuto nell'intervallo sul lato destro. Per esempio, se y2001 è l'intervallo che copre l'anno 2001,

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

Allora ymd("2001-03-30") %within% y2001 restituirà TRUE e ymd("2002-03-30") %within% y2001 restituirà FALSE.

int_overlaps() esegue un controllo simile, ma restituisce vero se due intervalli si sovrappongono anche solo in parte.

Esercitati per scoprire quali monarchi hanno visto la cometa di Halley intorno al 1066.

Questo esercizio fa parte del corso

Lavorare con date e orari in R

Visualizza il corso

Istruzioni dell'esercizio

Abbiamo caricato halleys, un insieme di dati che descrive le apparizioni della cometa di Halley, nel tuo workspace.

  • Stampa halleys per esaminare le date. perihelion_date è la data in cui la cometa è più vicina al Sole. start_date ed end_date sono l'intervallo di date in cui la cometa è visibile dalla Terra.
  • Crea una nuova colonna, visible, che sia un intervallo da start_date a end_date.
  • Lavorerai con una singola apparizione: estrai la 14ª riga di halleys.
  • Filtra monarchs per quelli in cui halleys_1066$perihelion_date cade all'interno di reign.
  • Filtra monarchs per quelli in cui halleys_1066$visible si sovrappone a reign.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice