Questa è una mia df
(data.frame):Calcolare differenza tra i valori in righe consecutive dal gruppo
group value
[1] 1 10
[2] 1 20
[3] 1 25
[4] 2 5
[5] 2 10
[6] 2 15
...
ho bisogno di calcolare differenza tra i valori in righe consecutive per gruppo.
Quindi, ho bisogno di un risultato.
group value diff
[1] 1 10 NA (because there is a no previous value)
[2] 1 20 10 (value[2]-value[1])
[3] 1 25 5 (value[3]-value[2])
[4] 2 5 NA (because group is changed)
[5] 2 10 5 (value[5]-value[4])
[6] 2 15 5 (value[6]-value[5])
...
Anche se, posso gestire questo problema utilizzando ddply
, ma ci vuole troppo tempo. Questo perché ho un sacco di gruppi nel mio df
. (Oltre 1.000.000 di gruppi nella mia df
)
Ci sono altri approcci efficaci per gestire questo problema?
Qualche possibilità si conosce una soluzione ddply? Avevo lavorato a questo per un po 'prima che ragionassi che avrebbe potuto necessitare di una funzione diversa. . . –
Suppongo che si tratti di qualcosa come 'ddply (df,. (Gruppo), transform, diff = c (NA, diff (valore)))' –
come si può modificare questo per calcolare la variazione percentuale? –