因此,我刚刚收到了一个数据集,其中数据帧的一列是“cycled”。本专栏实际上是一个年复一年的循环(在我的例子中,1984-2007)。在另一栏中,每年都有相应的美元数额(实际上是“供资水平”)。我的工作是为这些资金水平创造一个滞后变量。但诀窍是:每当一年的周期开始时,一个新的“变量”就开始了。因此,我正在寻找的滞后变量并不仅仅是整个供资栏的一个向后移动。相反,我需要为数据的每个子周期创建一个资金滞后。更确切地说,我的数据看起来有点像这样:
X Y
1 7
2 8
3 9
1 4
2 6
3 5
1 2
2 4
3 3
我需要它看起来像这样:
X Y
1 NA
2 7
3 8
1 NA
2 4
3 6
1 NA
2 2
3 4
我该怎么做呢?非常感谢你的帮助!
-JMC
发布于 2013-12-08 04:08:37
这应该能行。(我经常忘记给这个有趣的论点取名,然后ave
用一条神秘的错误信息抱怨。)
#Wrong dfrm$Y <- ave( dfrm$Y, dfrm$X, FUN=function(x) c(NA, x) )
由于缺乏适当的分组因子来标记不同类别的时间序列,我决定退出X==1:
dfrm$Y <- ave( dfrm$Y, cumsum(dfrm$X==1), FUN=function(x) c(NA, x[-length(x)]) )
https://stackoverflow.com/questions/20449619
复制相似问题