시작하기무료로 시작하기

구간과 날짜-시간 비교하기

구간(interval)과 관련해 자주 하는 작업은 특정 시점이 그 구간 안에 있는지, 또는 다른 구간과 겹치는지 확인하는 것입니다.

연산자 %within%는 왼쪽의 날짜-시간(또는 구간)이 오른쪽의 구간 안에 포함되는지를 검사합니다. 예를 들어 y2001이 2001년 전체를 나타내는 구간이라면,

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

이때 ymd("2001-03-30") %within% y2001TRUE를 반환하고, ymd("2002-03-30") %within% y2001FALSE를 반환합니다.

int_overlaps()는 비슷한 검사를 하지만, 두 구간이 조금이라도 겹치면 true를 반환합니다.

연습하며 1066년 무렵 핼리 혜성을 보았던 군주가 누구인지 알아보세요.

이 연습은 강의의 일부입니다

R에서 날짜와 시간 다루기

강의 보기

연습 안내

작업 공간에 핼리 혜성의 출현을 담은 데이터셋 halleys를 준비해 두었습니다.

  • 날짜를 살펴보기 위해 halleys를 출력하세요. perihelion_date는 혜성이 태양에 가장 가까워지는 날짜입니다. start_dateend_date는 지구에서 혜성을 볼 수 있는 기간입니다.
  • start_date부터 end_date까지의 구간을 나타내는 새 열 visible을 생성하세요.
  • 한 번의 출현만 다룰 것이므로, halleys의 14번째 행을 추출하세요.
  • halleys_1066$perihelion_datereign 구간 안에 있는 군주만 남기도록 monarchs를 필터링하세요.
  • halleys_1066$visiblereign과 겹치는 군주만 남기도록 monarchs를 필터링하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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)
코드 편집 및 실행