Comment regrouper les données par mois dans R (avec exemple)



Vous pouvez utiliser la fonction floor_date() du package lubridate dans R pour regrouper rapidement les données par mois.

Cette fonction utilise la syntaxe de base suivante :

library(tidyverse)

df %>% 
    group_by(month = lubridate::floor_date(date_column, 'month')) %>%
    summarize(sum = sum(value_column))

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : regrouper les données par mois dans R

Supposons que nous ayons le bloc de données suivant dans R qui montre les ventes totales d’un article à différentes dates :

#create data frame 
df <- data.frame(date=as.Date(c('1/4/2022', '1/9/2022', '2/10/2022', '2/15/2022',
                                '3/5/2022', '3/22/2022', '3/27/2022'), '%m/%d/%Y'),
                 sales=c(8, 14, 22, 23, 16, 17, 23))

#view data frame
df

        date sales
1 2022-01-04     8
2 2022-01-09    14
3 2022-02-10    22
4 2022-02-15    23
5 2022-03-05    16
6 2022-03-22    17
7 2022-03-27    23

On peut utiliser le code suivant pour calculer la somme des ventes, regroupées par mois :

library(tidyverse)

#group data by month and sum sales
df %>% 
    group_by(month = lubridate::floor_date(date, 'month')) %>%
    summarize(sum_of_sales = sum(sales))

# A tibble: 3 x 2
  month      sum_of_sales
              
1 2022-01-01           22
2 2022-02-01           45
3 2022-03-01           56

À partir du résultat, nous pouvons voir :

  • Au total, 22 ventes ont été réalisées en janvier.
  • Au total, 45 ventes ont été réalisées en février.
  • Au total, 56 ventes ont été réalisées en mars.

Nous pouvons également agréger les données à l’aide d’une autre métrique.

Par exemple, nous pourrions calculer les ventes maximales réalisées en une journée, regroupées par mois :

library(tidyverse)

#group data by month and find max sales
df %>% 
    group_by(month = lubridate::floor_date(date, 'month')) %>%
    summarize(max_of_sales = max(sales))

# A tibble: 3 x 2
  month      max_of_sales
              
1 2022-01-01           14
2 2022-02-01           23
3 2022-03-01           23

À partir du résultat, nous pouvons voir :

  • Le maximum de ventes réalisées en une journée en janvier était de 14 .
  • Le maximum de ventes réalisées en une journée en février était de 23 .
  • Le maximum de ventes réalisées en une journée en mars était de 23 .

N’hésitez pas à utiliser la métrique de votre choix dans la fonction summary() .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment extraire l’année à partir de la date dans R
Comment extraire le mois de la date dans R
Comment trier une trame de données par date dans R
Comment convertir un facteur en date dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *