我有data.frame
看起来像这样:
AsofDate PeriodStartDate Price
2007-12-01 2008-01-01 8
2007-12-01 2008-04-01 10
2007-12-01 2008-10-01 16
2007-12-01 2009-01-01 29
2007-12-02 2008-01-01 8
2007-12-02 2008-04-01 10
2007-12-02 2008-10-01 16
2007-12-02 2009-01-01 29
我想计算每天每个相邻季度之间的差异。
因此,我希望能够通过不同的时间戳快速创建每季度差异的一次性系列。
我试图将其转动,或使用by
,但效果不佳。
答案 0 :(得分:0)
在基地R你可以做到
df$diff <- unlist(tapply(df$Price, df$AsofDate, function(x) c(NA,diff(x))))
> df
AsofDate PeriodStartDate Price diff
1 2007-12-01 2008-01-01 8 NA
2 2007-12-01 2008-04-01 10 2
3 2007-12-01 2008-10-01 16 6
4 2007-12-01 2009-01-01 29 13
5 2007-12-02 2008-01-01 8 NA
6 2007-12-02 2008-04-01 10 2
7 2007-12-02 2008-10-01 16 6
8 2007-12-02 2009-01-01 29 13