Extraire pour filtrer et agréger
Extraire des composantes permet aussi de filtrer des observations ou de créer des résumés. Par exemple, si vous ne souhaitez conserver que les observations effectuées en semaine (c.-à-d. pas le week-end), vous pouvez extraire le jour de la semaine puis exclure les week-ends, p. ex. wday(date) %in% 2:6.
Dans le dernier exercice, vous avez vu que janvier, février et mars sont de très bons mois pour visiter Auckland si vous cherchez des températures douces, mais aurez-vous besoin d’un imperméable ?
C’est ce que vous allez découvrir ici ! Vous utiliserez les données horaires pour calculer, pour chaque mois, le nombre de jours où il a plu pendant la journée.
Cet exercice fait partie du cours
Travailler avec les dates et heures en R
Instructions
- Créez de nouvelles colonnes pour l’heure et le mois de l’observation à partir de
datetime. Veillez à étiqueter le mois. - Filtrez pour ne conserver que les observations en journée, où l’heure est supérieure ou égale à
8et inférieure ou égale à22. - Regroupez d’abord les observations par
month, puis pardate, et effectuez un résumé en utilisantany()sur la colonnerainy. Cela donne une valeur par jour - Résumez à nouveau en faisant la somme de
any_rain. Cela donne une valeur par mois
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)
)