Extraire pour filtrer et résumer
Une autre bonne raison d'extraire des composantes est d'aider au filtrage des observations ou à la création de résumés. Par exemple, si vous ne vous intéressez qu'aux observations faites les jours de semaine (c.-à-d. pas la fin de semaine), vous pouvez extraire les jours de la semaine puis exclure la fin de semaine, p. ex. wday(date) %in% 2:6.
Dans le dernier exercice, vous avez vu que janvier, février et mars sont d'excellentes périodes pour visiter Auckland pour ses températures chaudes, mais aurez-vous besoin d'un imperméable?
Dans cet exercice, vous le découvrirez! Vous utiliserez les données horaires pour calculer, pour chaque mois, le nombre de jours où il y a eu de la pluie durant la journée.
Cette activité fait partie du cours
Travailler avec les dates et les heures en R
Instructions de l’exercice
- Créez de nouvelles colonnes pour l'heure et le mois de l'observation à partir de
datetime. Assurez-vous d'étiqueter le mois. - Filtrez uniquement les observations de jour, où l'heure est supérieure ou égale à
8et inférieure ou égale à22. - Regroupez d'abord les observations par
month, puis pardate, et résumez en utilisantany()sur la colonnerainy. Cela donne une valeur par jour - Résumez de nouveau en faisant la somme de
any_rain. Cela donne une valeur par mois
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)
)