Začněte nyníZačněte zdarma

Porovnávání intervalů a datumů

Při práci s intervaly se často potřebuješ zeptat, jestli daný čas leží uvnitř intervalu, nebo jestli se dva intervaly překrývají.

Operátor %within% testuje, zda datetime (nebo interval) na levé straně leží uvnitř intervalu na pravé straně. Například pokud y2001 je interval pokrývající rok 2001,

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

pak ymd("2001-03-30") %within% y2001 vrátí TRUE a ymd("2002-03-30") %within% y2001 vrátí FALSE.

int_overlaps() provádí podobný test, ale vrátí TRUE, pokud se dva intervaly jakkoliv překrývají.

Zkus zjistit, kteří panovníci mohli vidět Halleyovu kometu kolem roku 1066.

Toto cvičení je součástí kurzu

Práce s daty a časy v R

Zobrazit kurz

Pokyny k cvičení

V tvém pracovním prostředí je připravena datová sada halleys popisující výskyty Halleyovy komety.

  • Vypiš halleys a prohlédni si data. perihelion_date je datum, kdy je kometa nejblíže Slunci. start_date a end_date jsou krajní data, ve kterých je kometa viditelná ze Země.
  • Vytvoř nový sloupec visible jako interval od start_date do end_date.
  • Budeš pracovat s jedním výskytem – extrahuj 14. řádek z halleys.
  • Filtruj monarchs tak, aby halleys_1066$perihelion_date leželo uvnitř reign.
  • Filtruj monarchs tak, aby se halleys_1066$visible překrývalo s reign.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód