開始使用免費開始

比較區間與日期時間

處理區間時的常見任務,是判斷某個時間點是否落在區間內,或是兩個區間是否彼此重疊。

運算子 %within% 用來測試左側的日期時間(或區間)是否位於右側的區間內。例如,如果 y2001 是涵蓋 2001 年的區間,

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

那麼 ymd("2001-03-30") %within% y2001 會回傳 TRUE,而 ymd("2002-03-30") %within% y2001 會回傳 FALSE

int_overlaps() 也進行類似的測試,但只要兩個區間有任何重疊就會回傳 true。

來練習判斷哪些英國君主在 1066 年前後看過哈雷彗星。

本練習屬於課程

在 R 中處理日期與時間

檢視課程

練習說明

我們已在你的工作空間放入 halleys,這是一個描述哈雷彗星出現紀錄的資料集。

  • 列印 halleys 檢視日期欄位。perihelion_date 是彗星距離太陽最近的日期;start_dateend_date 則是從地球可見的日期範圍。
  • 建立新欄位 visible,其值為從 start_dateend_date 的區間。
  • 你將聚焦其中一次出現,擷取 halleys 的第 14 列。
  • 篩選 monarchs,找出 halleys_1066$perihelion_date 落在 reign 區間內的君主。
  • 篩選 monarchs,找出 halleys_1066$visiblereign 有重疊的君主。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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)
編輯並執行程式碼