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
Instruções do exercício
Colocamos halleys, um conjunto de dados que descreve aparições do cometa de Halley, no seu workspace.
- Imprima
halleyspara examinar a data.perihelion_dateé a data em que o cometa está mais próximo do Sol.start_dateeend_datesão o intervalo de datas em que o cometa é visível da Terra. - Crie uma nova coluna,
visible, que seja um intervalo destart_dateaend_date. - Você vai trabalhar com uma aparição: extraia a 14ª linha de
halleys. - Filtre
monarchspara aqueles em quehalleys_1066$perihelion_dateestá dentro dereign. - Filtre
monarchspara aqueles em quehalleys_1066$visiblese sobrepõe areign.
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)