Jämföra intervall och datum/tider
En vanlig uppgift med intervall är att kontrollera om en viss tidpunkt befinner sig inom ett intervall, eller om det överlappar med ett annat intervall.
Operatorn %within% testar om datum/tiden (eller intervallet) på vänster sida befinner sig inom intervallet på höger sida. Om y2001 till exempel är intervallet som täcker år 2001,
y2001 <- ymd("2001-01-01") %--% ymd("2001-12-31")
kommer ymd("2001-03-30") %within% y2001 att returnera TRUE och ymd("2002-03-30") %within% y2001 att returnera FALSE.
int_overlaps() utför ett liknande test, men returnerar true om två intervall överlappar på något sätt.
Öva på att ta reda på vilka monarker som såg Halleys komet omkring år 1066.
Den här övningen är en del av kursen
Arbeta med datum och tider i R
Övningsinstruktioner
Vi har lagt till halleys, ett dataset som beskriver Halleys komets framträdanden, i din arbetsyta.
- Skriv ut
halleysför att granska datan.perihelion_dateär det datum då kometen är närmast solen.start_dateochend_dateär det datumintervall då kometen är synlig från jorden. - Skapa en ny kolumn,
visible, som är ett intervall frånstart_datetillend_date. - Du kommer att arbeta med ett framträdande – extrahera rad 14 från
halleys. - Filtrera
monarchstill de rader därhalleys_1066$perihelion_datebefinner sig inomreign. - Filtrera
monarchstill de rader därhalleys_1066$visibleöverlapparreign.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)