Получение предыдущих n строк во фрейме данных?

У меня есть следующий фрейм данных.

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

Есть несколько дат, и для каждой даты у меня есть 10 значений идентификатора, как показано выше, и поле значения. Что я хотел бы сделать, так это найти для каждого идентификатора предыдущие n значений в поле «значение». Например, если n = 3, я хочу, чтобы вывод был следующим.

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

Есть ли простой способ добраться до этого через plyr или с помощью mapply? Большое спасибо заранее.

6
задан broccoli 29 May 2012 в 06:07
поделиться