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
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