ÎncepețiÎncepe gratuit

Compararea intervalelor și a datelor calendaristice

O sarcină frecventă cu intervalele este să verifici dacă un anumit moment se află în interiorul unui interval sau dacă acesta se suprapune cu un alt interval.

Operatorul %within% testează dacă data calendaristică (sau intervalul) din stânga se află în interiorul intervalului din dreapta. De exemplu, dacă y2001 este intervalul care acoperă anul 2001,

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

Atunci ymd("2001-03-30") %within% y2001 va returna TRUE, iar ymd("2002-03-30") %within% y2001 va returna FALSE.

int_overlaps() realizează un test similar, însă returnează TRUE dacă două intervale se suprapun în orice mod.

Exersează pentru a descoperi care monarhi au putut vedea cometa Halley în jurul anului 1066.

Acest exercițiu face parte din cursul

Lucrul cu date și ore în R

Vezi cursul

Instrucțiuni pentru exercițiu

Am plasat în spațiul tău de lucru setul de date halleys, care descrie aparițiile cometei Halley.

  • Afișează halleys pentru a examina datele. perihelion_date este data la care cometa se află cel mai aproape de Soare. start_date și end_date reprezintă intervalul de date în care cometa este vizibilă de pe Pământ.
  • Creează o coloană nouă, visible, care să fie un interval de la start_date la end_date.
  • Vei lucra cu o singură apariție – extrage al 14-lea rând din halleys.
  • Filtrează monarchs pentru a păstra doar monarhii la care halleys_1066$perihelion_date se află în interiorul intervalului reign.
  • Filtrează monarchs pentru a păstra doar monarhii la care halleys_1066$visible se suprapune cu reign.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul