Come calcolare l'offset per gruppo utilizzando dplyr


È possibile utilizzare la seguente sintassi per calcolare i valori spostati di gruppo in R utilizzando il pacchetto dplyr :

 df %>%
  group_by(var1) %>%
  mutate(lag1_value = lag(var2, n= 1 , order_by=var1))

Nota : la funzione mutate() aggiunge una nuova variabile al frame di dati che contiene i valori ritardati.

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

Esempio: calcola i valori spostati per gruppo utilizzando dplyr

Supponiamo di avere il seguente frame di dati in R che mostra le vendite effettuate da due negozi diversi in giorni diversi:

 #create data frame
df <- data. frame (store=c('A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'),
                 sales=c(7, 12, 10, 9, 9, 11, 18, 23))

#view data frame
df

  blind sales
1 to 7
2 B 12
3 to 10
4 B 9
5 to 9
6 B 11
7 to 18
8 B 23

Possiamo utilizzare il seguente codice per creare una nuova colonna che mostri i valori delle vendite ritardate per ciascun negozio:

 library (dplyr)

#calculate lagged sales by group
df %>%
  group_by(store) %>%
  mutate(lag1_sales = lag(sales, n= 1 , order_by=store))

# A tibble: 8 x 3
# Groups: store[2]
  store sales lag1_sales
1 to 7 NA
2 B 12 NA
3 to 10 7
4 B 9 12
5 to 9 10
6 B 11 9
7 to 18 9
8 B 23 11

Ecco come interpretare il risultato:

  • Il primo valore di lag1_sales è NA perché non esiste un valore precedente per le vendite del negozio A.
  • Il secondo valore di lag1_sales è NA perché non esiste un valore precedente per le vendite del negozio B.
  • Il terzo valore di lag1_sales è 7 perché è il valore delle vendite precedenti del negozio A.
  • Il quarto valore di lag1_sales è 12 perché è il valore delle vendite precedenti del negozio B.

E così via.

Tieni presente che puoi anche modificare il numero di ritardi utilizzati modificando il valore di n nella funzione lag() .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altri calcoli comuni in R:

Come calcolare una somma parziale utilizzando dplyr
Come calcolare la somma per gruppo in R
Come calcolare la media per gruppo in R

Aggiungi un commento

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