Come calcolare i valori di spostamento in r (con esempi)
È possibile utilizzare la funzione lag() dal pacchetto dplyr in R per calcolare i valori di ritardo.
Questa funzione utilizza la seguente sintassi di base:
scostamento(x, n=1, …)
Oro:
- x : vettore di valori
- n : numero di posizioni da ritardare
L’esempio seguente mostra come utilizzare questa funzione per calcolare nella pratica i valori spostati.
Esempio: calcolo dei valori spostati in R
Supponiamo di avere il seguente frame di dati in R che mostra il numero di vendite effettuate da un negozio in 10 giorni consecutivi:
#create data frame
df <- data. frame (day=1:10,
sales=c(18, 10, 14, 13, 19, 24, 25, 29, 15, 18))
#view data frame
df
day sales
1 1 18
2 2 10
3 3 14
4 4 13
5 5 19
6 6 24
7 7 25
8 8 29
9 9 15
10 10 18
Possiamo utilizzare la funzione lag() del pacchetto dplyr per creare una colonna lag che mostri le vendite del giorno precedente per ogni riga:
library (dplyr)
#add new column that shows sales for previous day
df$previous_day_sales <- dplyr::lag(df$sales, n= 1 )
#view updated data frame
df
day sales previous_day_sales
1 1 18 NA
2 2 10 18
3 3 14 10
4 4 13 14
5 5 19 13
6 6 24 19
7 7 25 24
8 8 29 25
9 9 15 29
10 10 18 15
Ecco come interpretare il risultato:
- Il primo valore nella colonna offset è NA poiché non esiste alcun valore precedente nella colonna vendite.
- Il secondo valore nella colonna offset è 18 poiché è il valore precedente nella colonna vendite.
- Il terzo valore nella colonna offset è 10 poiché è il valore precedente nella colonna vendite.
E così via.
Possiamo anche modificare il valore dell’argomento n nella funzione lag() per calcolare un valore di ritardo per un numero diverso di posizioni precedenti:
library (dplyr)
#add new column that shows sales for two days prior
df$previous_day_sales <- dplyr::lag(df$sales, n= 2 )
#view updated data frame
df
day sales previous_day_sales
1 1 18 NA
2 2 10 NA
3 3 14 18
4 4 13 10
5 5 19 14
6 6 24 13
7 7 25 19
8 8 29 24
9 9 15 25
10 10 18 29
Nota : per creare una colonna lead, utilizzare la funzione lead() dal pacchetto dplyr invece della funzione lag() .
Risorse addizionali
I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:
Come utilizzare la funzione n() in dplyr
Come utilizzare la funzione across() in dplyr
Come utilizzare la funzione relocate() in dplyr
Come utilizzare la funzione slice() in dplyr