提取用于筛选与汇总
提取日期时间的组成部分还有一个用途:便于筛选观测或创建汇总。例如,若您只关心工作日(即排除周末)的观测,可以先提取星期几,再过滤掉周末,例如 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)
)