Diciamo che ho questo data.frame (con 3 variabili)operazione diff all'interno di un gruppo, dopo un dplyr :: group_by()
ID Period Score
123 2013 146
123 2014 133
23 2013 150
456 2013 205
456 2014 219
456 2015 140
78 2012 192
78 2013 199
78 2014 133
78 2015 170
Utilizzando dplyr posso raggrupparli per ID e filtrare questi ID che apparire più di una volta
data <- data %>% group_by(ID) %>% filter(n() > 1)
Ora, quello che mi piace di raggiungere è quello di aggiungere una colonna che è: Differenza = Punteggio di Periodo P - Punteggio di Periodo P-1 per ottenere qualcosa di simile:
ID Period Score Difference
123 2013 146
123 2014 133 -13
456 2013 205
456 2014 219 14
456 2015 140 -79
78 2012 192
78 2013 199 7
78 2014 133 -66
78 2015 170 37
È piuttosto banale farlo in un foglio di calcolo, ma non ho idea di come posso ottenere questo in R.
Grazie per qualsiasi aiuto o guida.
Grazie Alex. Mi piace molto anche questo. Quindi sì, sono d'accordo che è meglio avere NA per il primo periodo e 0 solo quando la differenza è 0. – Franky
Puoi anche specificare il valore predefinito all'interno di 'lag', ad es. 'Punteggio - lag (Punteggio, default = 99)' e quale lag vuoi usare. –