擷取以便過濾與摘要
擷取日期時間的組件還有另一個用途:協助過濾觀測值或建立摘要。例如,如果你只關心平日(也就是不含週末)的觀測,就可以先擷取星期幾,然後把週末過濾掉,例如:wday(date) %in% 2:6。
在上一題你看到 1、2、3 月是造訪奧克蘭、享受高溫的好時機,不過你需要帶雨衣嗎?
這一題你就會找出答案!你會使用逐小時資料,計算每個月份白天有下雨的天數。
本練習屬於課程
在 R 中處理日期與時間
練習說明
- 從
datetime建立觀測的時與月兩個新欄位。請確保月份有加上標籤。 - 僅保留白天的觀測,條件為小時大於等於
8且小於等於22。 - 先以
month,再以date分組,並在rainy欄位上使用any()進行摘要。*這會得到每天一個值* - 再次摘要,對
any_rain進行加總。*這會得到每個月一個值*
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create new columns hour, month and rainy
akl_hourly <- akl_hourly %>%
mutate(
___ = ___(datetime),
___ = ___(datetime, ___),
rainy = weather == "Precipitation"
)
# Filter for hours between 8am and 10pm (inclusive)
akl_day <- akl_hourly %>%
filter(___, ___)
# Summarise for each date if there is any rain
rainy_days <- akl_day %>%
group_by(___, ___) %>%
summarise(
any_rain = ___(rainy)
)
# Summarise for each month, the number of days with rain
rainy_days %>%
summarise(
days_rainy = ___(any_rain)
)