НачатьНачать бесплатно

Извлечение компонентов для фильтрации и обобщения

Ещё одна причина извлекать компоненты дат — удобство фильтрации наблюдений и построения сводок. Например, если вас интересуют только наблюдения в будние дни (то есть не в выходные), можно извлечь день недели и отфильтровать выходные: wday(date) %in% 2:6.

В предыдущем упражнении вы убедились, что январь, февраль и март — отличное время для поездки в Окленд благодаря тёплой погоде. Но понадобится ли вам зонт?

В этом упражнении вы это выясните! Используя почасовые данные, вы подсчитаете, сколько дней в каждом месяце в дневное время выпадали осадки.

Это упражнение является частью курса

Работа с датами и временем в R

Посмотреть курс

Инструкции к упражнению

  • Создайте новые столбцы для часа и месяца наблюдения на основе datetime. Обязательно задайте метку для месяца.
  • Отфильтруйте только дневные наблюдения: час должен быть больше или равен 8 и меньше или равен 22.
  • Сгруппируйте наблюдения сначала по month, затем по date и обобщите данные, применив any() к столбцу rainy. В результате получится одно значение на каждый день.
  • Выполните ещё одно обобщение, просуммировав значения 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)
  )
Редактировать и запускать код