Извлечение компонентов для фильтрации и обобщения
Ещё одна причина извлекать компоненты дат — удобство фильтрации наблюдений и построения сводок. Например, если вас интересуют только наблюдения в будние дни (то есть не в выходные), можно извлечь день недели и отфильтровать выходные: 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)
)