Usa la funzione diff in R

Manav Narula 26 aprile 2021
Usa la funzione diff in R

Calcolare la differenza tra gli elementi è un’operazione fondamentale. Possiamo anche calcolare facilmente la differenza tra elementi consecutivi, ma per enormi set di dati che ottengono questo manualmente, riga per riga non è efficiente.

Nella programmazione R, il diff() calcola la differenza tra elementi consecutivi del vettore, che viene passato alla funzione. Il risultato finale è anche un vettore. Per esempio:

x <- c(5,3,4,3,8,9,4,8,1)
diff(x)
[1] -2  1 -1  5  1 -5  4 -7

Come puoi vedere nell’esempio sopra, la funzione diff() restituisce la differenza tra elementi consecutivi (3 - 5 = -2, 4 - 3 = 1, ….). Inoltre, notare che il vettore risultante ha un elemento in meno; questo perché non può calcolare la differenza dell’ultimo elemento.

Possiamo anche aggiungere due parametri alla funzione diff(). Questi sono i parametri lag e differences.

Il parametro lag può specificare lo spazio tra gli elementi di cui viene calcolata la differenza. È 1 per impostazione predefinita. Quando il parametro lag è 2, la funzione diff() calcolerà la differenza tra il primo e il terzo elemento, il secondo e il quarto elemento, ecc. L’esempio seguente chiarirà le cose:

diff(x, lag = 2)
[1] -1  0  4  6 -4 -1 -3

Il parametro differences viene utilizzato per specificare l’ordine delle differenze. Ad esempio, lo impostiamo su 2; quindi calcolerà prima la differenza tra i dati elementi del vettore, quindi calcolerà di nuovo la differenza degli elementi consecutivi del vettore risultante. Il seguente frammento di codice spiegherà questo:

diff(x)
[1] -2  1 -1  5  1 -5  4 -7
diff(x, differences = 2)
[1]   3  -2   6  -4  -6   9 -11

Possiamo anche avere entrambi questi parametri impostati su un valore specifico contemporaneamente. Ad esempio, nel codice seguente, abbiamo impostato il lag come 2 e le differences come 2.

diff(x, differences = 2, lag = 2)
[1]  5  6 -8 -7  1
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - R Math