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


È possibile utilizzare la funzione strftime() in base R con l’argomento ” %V ” per raggruppare i dati per settimana in R.

Questa funzione utilizza la seguente sintassi di base:

 df$week_num <- strftime(df$date, format = " %V ")

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

Esempio: raggruppare i dati per settimana 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/8/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-08 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 codice seguente per aggiungere una colonna che visualizza il numero della settimana di ciascuna data:

 #add column to show week number
df$week_num <- strftime(df$date, format = " %V ")

#view updated data frame
df

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

Nota : secondo la documentazione, %V% calcola i numeri delle date in questo modo: “il numero della settimana dell’anno (lunedì come primo giorno della settimana) come decimale [01,53].” Se la settimana contenente il 1 gennaio ha quattro o più giorni nel nuovo anno, allora è considerata la settimana 1. Altrimenti, è l’ultima settimana dell’anno precedente e la settimana successiva è la settimana 1.”

Una volta creata questa nuova colonna, possiamo raggruppare i valori in base al numero della settimana.

Ad esempio, possiamo utilizzare il seguente codice per calcolare la somma delle vendite, raggruppate per settimana:

 library (dplyr)

#calculate sum of sales, grouped by week
df %>%
  group_by(week_num) %>%
  summarize(total_sales = sum(sales))

# A tibble: 6 x 2
  week_num total_sales
            
1 01 22
2 06 22
3 07 23
4 09 16
5 12 40

Dal risultato possiamo vedere:

  • La somma delle vendite nella settimana 1 è stata di 22 .
  • La somma delle vendite nella settimana 6 è stata di 22 .
  • La somma delle vendite nella settimana 7 è stata di 23 .

E così via.

Possiamo anche utilizzare un’altra metrica per aggregare i dati.

Ad esempio, possiamo utilizzare il seguente codice per calcolare le vendite medie, raggruppate per settimana:

 library (dplyr)

#calculate mean of sales, grouped by week
df %>%
  group_by(week_num) %>%
  summarize(mean_sales = mean(sales))

# A tibble: 5 x 2
  week_num mean_sales
           
1 01 11
2 06 22
3 07 23
4 09 16
5 12 20

Dal risultato possiamo vedere:

  • La media delle vendite nella settimana 1 è stata di 11 .
  • La media delle vendite nella sesta settimana è stata di 22 .
  • La media delle vendite nella settimana 7 è stata di 23 .

E così via.

Risorse addizionali

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

Come raggruppare i dati per mese inR
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

Aggiungi un commento

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