ComeçarComece de graça

Comparando intervalos e datetimes

Uma tarefa comum com intervalos é verificar se um determinado momento está dentro do intervalo ou se ele se sobrepõe a outro intervalo.

O operador %within% testa se o datetime (ou intervalo) no lado esquerdo está dentro do intervalo no lado direito. Por exemplo, se y2001 é o intervalo que cobre o ano de 2001,

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

Então ymd("2001-03-30") %within% y2001 vai retornar TRUE e ymd("2002-03-30") %within% y2001 vai retornar FALSE.

int_overlaps() faz um teste semelhante, mas retorna verdadeiro se dois intervalos se sobrepõem de alguma forma.

Pratique para descobrir quais monarcas viram o cometa de Halley por volta de 1066.

Este exercício faz parte do curso

Trabalhando com datas e horários no R

Ver curso

Instruções do exercício

Colocamos halleys, um conjunto de dados que descreve aparições do cometa de Halley, no seu workspace.

  • Imprima halleys para examinar a data. perihelion_date é a data em que o cometa está mais próximo do Sol. start_date e end_date são o intervalo de datas em que o cometa é visível da Terra.
  • Crie uma nova coluna, visible, que seja um intervalo de start_date a end_date.
  • Você vai trabalhar com uma aparição: extraia a 14ª linha de halleys.
  • Filtre monarchs para aqueles em que halleys_1066$perihelion_date está dentro de reign.
  • Filtre monarchs para aqueles em que halleys_1066$visible se sobrepõe a reign.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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)
Editar e executar o código