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
Istruzioni dell'esercizio
Abbiamo caricato halleys, un insieme di dati che descrive le apparizioni della cometa di Halley, nel tuo workspace.
- Stampa
halleysper esaminare le date.perihelion_dateè la data in cui la cometa è più vicina al Sole.start_dateedend_datesono l'intervallo di date in cui la cometa è visibile dalla Terra. - Crea una nuova colonna,
visible, che sia un intervallo dastart_dateaend_date. - Lavorerai con una singola apparizione: estrai la 14ª riga di
halleys. - Filtra
monarchsper quelli in cuihalleys_1066$perihelion_datecade all'interno direign. - Filtra
monarchsper quelli in cuihalleys_1066$visiblesi sovrappone areign.
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)