开始使用免费开始使用

提取用于筛选与汇总

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