Come raggruppare i dati per mese in r (con esempio)


È possibile utilizzare la funzione floor_date() dal pacchetto lubridate in R per raggruppare rapidamente i dati per mese.

Questa funzione utilizza la seguente sintassi di base:

 library (tidyverse)

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

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: raggruppare i dati per mese in R

Supponiamo di avere il seguente frame di dati in R che mostra le vendite totali di un articolo in date diverse:

 #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

        dirty date
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

Possiamo utilizzare il seguente codice per calcolare la somma delle vendite, raggruppate per mese:

 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

Dal risultato possiamo vedere:

  • In totale, nel mese di gennaio sono state effettuate 22 vendite.
  • In totale, nel mese di febbraio sono state effettuate 45 vendite.
  • In totale, nel mese di marzo sono state effettuate 56 vendite.

Possiamo anche aggregare i dati utilizzando un’altra metrica.

Ad esempio potremmo calcolare le vendite massime effettuate in un giorno, raggruppate per mese:

 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

Dal risultato possiamo vedere:

  • Il numero massimo di vendite effettuate in un giorno nel mese di gennaio è stato di 14 .
  • Il numero massimo di vendite effettuate in un giorno nel mese di febbraio è stato pari a 23 .
  • Il numero massimo di vendite effettuate in un giorno nel mese di marzo è stato pari a 23 .

Sentiti libero di utilizzare qualunque metrica desideri nella funzione summary() .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come estrarre l’anno dalla data in R
Come estrarre il mese dalla data in R
Come ordinare un frame di dati per data in R
Come convertire il fattore fino ad oggi in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *