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


È possibile utilizzare la seguente sintassi per raggruppare i dati in base all’ora ed eseguire l’aggregazione in R:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate sum of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(sum_sales=sum(sales))

Questo particolare esempio raggruppa i valori per ora in una colonna denominata Ora e quindi calcola la somma dei valori nella colonna Vendite per ogni ora.

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

Esempio: raggruppare i dati per ora in R

Supponiamo di avere il seguente frame di dati che mostra il numero di vendite effettuate in diversi momenti della giornata per un negozio:

 #create data frame
df <- data. frame (time=as. POSIXct (c('2022-01-01 01:14:00', '2022-01-01 01:24:15',
                                 '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                                 '2022-01-01 04:05:10', '2022-01-01 05:35:09')),
                 sales=c(18, 20, 15, 14, 10, 9))

#view data frame
df

                 time sales
1 2022-01-01 01:14:00 18
2 2022-01-01 01:24:15 20
3 2022-01-01 02:52:19 15
4 2022-01-01 02:54:00 14
5 2022-01-01 04:05:10 10
6 2022-01-01 05:35:09 9

Possiamo utilizzare la seguente sintassi per raggruppare la colonna temporale per ore e calcolare la somma delle vendite per ogni ora:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate sum of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(sum_sales=sum(sales))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 4 x 2
  time sum_sales
                    
1 2022-01-01 01:00:00 38
2 2022-01-01 02:00:00 29
3 2022-01-01 04:00:00 10
4 2022-01-01 05:00:00 9

Dal risultato possiamo vedere:

  • Nella prima ora sono state effettuate 38 vendite in totale.
  • Nella seconda ora sono state effettuate complessivamente 29 vendite.
  • Nella quarta ora sono state effettuate 10 vendite in totale.
  • Durante la quinta ora sono state effettuate 9 vendite in totale.

Tieni presente che possiamo anche eseguire un’altra aggregazione.

Ad esempio, potremmo calcolare il numero medio di vendite all’ora:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate mean of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(mean_sales=mean(sales))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 4 x 2
  time mean_sales
                     
1 2022-01-01 01:00:00 19  
2 2022-01-01 02:00:00 14.5
3 2022-01-01 04:00:00 10  
4 2022-01-01 05:00:00 9

Dal risultato possiamo vedere:

  • La media delle vendite effettuate nella prima ora è stata di 19 .
  • La media delle vendite effettuate nella seconda ora è stata di 14,5 .
  • La media delle vendite effettuate nella quarta ora è stata di 10 .
  • La media delle vendite effettuate nella quinta ora è stata di 9 .

Sentiti libero di raggruppare il tuo frame di dati in base al tempo e calcolare qualsiasi metrica specifica che desideri modificando la metrica nella funzione summary() .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come raggruppare i dati per mese in R
Come raggruppare i dati per settimana in R

Aggiungi un commento

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