Ho il seguente frame di dati.Ottenere le precedenti n-righe in un frame di dati?
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
Ci sono diverse date e per ogni data, ho 10 valori di ID come mostrato sopra e un campo di valori. Quello che vorrei fare è che ogni id trovi i precedenti valori n nel campo "valore". Ad esempio, se n = 3, voglio che l'output sia come segue.
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
...
C'è un modo semplice per arrivare a questo tramite plyr o utilizzando mapply? Grazie mille in anticipo.
Sembra buono. Come la tenacia offerta dall'approccio funzionale di tapply/sapply e do.call. Sto ancora cercando di convincermi a pensare su quelle righe. – broccoli