Tengo el siguiente marco de datos.¿Cómo llegar a las n filas anteriores en un marco de datos?
date id value
2012-01-01 1 0.3
2012-01-01 2 0.5
2012-01-01 3 0.2
2012-01-01 4 0.8
2012-01-01 5 0.2
2012-01-01 6 0.8
2012-01-01 7 0.1
2012-01-01 8 0.4
2012-01-01 9 0.3
2012-01-01 10 0.2
Hay varias fechas y para cada fecha, tengo 10 valores de identificación como se muestra arriba y un campo de valor. Lo que me gustaría hacer es que para cada identificación encuentre los n valores previos en el campo "valor". Por ejemplo, si n = 3, entonces quiero que la salida sea la siguiente.
date id value value1 value2 value3
2012-01-01 1 0.3 NA NA NA
2012-01-01 2 0.5 NA NA NA
2012-01-01 3 0.2 NA NA NA
2012-01-01 4 0.8 0.2 0.5 0.3
2012-01-01 5 0.2 0.8 0.2 0.5
...
¿Hay una manera fácil de conseguir esto a través de plyr o utilizando mapply? Muchas gracias de antemano.
Se ve bien. Como la concisión ofrecida por el enfoque funcional de tapply/sapply & do.call. Todavía estoy tratando de hacer que mi cabeza piense en esas líneas. – broccoli