我正在寻找在数据框中创建一个现有列的副本,该列偏移了许多行。
例如,如果 column2 是 column1 偏移 1 的副本,则
> dataframe
$column1
[1] 1 2 3 4 5
$column2
[1] 0 1 2 3 4
我使用以下代码取得了一些成功:
offset7 <- rep(0, 7)
dataframe$column1.prev7 = c(offset7, dataframe$column1[1:(length(dataframe$column1)-7)])
但是,如果我偏移 30 或更多,它就会开始出错。我的数据足够长,这不会成为偏移量大于行数的问题。错误是:
Error in dataframe$column1[1:(length(dataframe$column1) - 30)] :
only 0's may be mixed with negative subscripts
提前致谢!与 plyr 配合得很好的快速无循环版本将是首选。这里的目的是将时间序列数据分解为长达一年的各种滞后,然后以各种方式分析结果。