我想用这个测试框架计算出不同的趋势。
date_list = seq(ymd('2000-01-15'),ymd('2010-09-18'),by='day')
testframe = data.frame(Date = date_list)
testframe$Day = substr(testframe$Date, start = 6, stop = 10)
testframe$V1 = runif(3900, 2.0, 35.0)
testframe$V2 = runif(3900, 5.0, 40.0)
testframe$V3 = runif(3900, -10.0, 10.0)
testframe$V4 = seq(from = 5, to = 45, length.out = 3900)
我有一个Date列,其中包含确切的日期。 days列包含提取的天数和月份,然后我有4列具有不同的值。
我想做两件事:
计算多年来每天的值趋势。所以最后我只有一列,每一天(无年),然后是每一天的值V1-V4的斜率。应该计算2000年到2010年之间每天的斜率。
与上面相同,但是这次我不仅要计算每一天的斜率,还想获取每一天之前15天和之后15天的平均值。因此对于例如的值的斜率2000-02-01,我希望获得2000-01-17至2000-02-16的所有值的平均值。在这几天过后,我想做与上述相同的事情。
到目前为止,我唯一的努力就是创建“日”列以将其用于aggregate
命令...但是到目前为止,它并没有带给我任何地方。
更新:我发现了一个名为TTR
的好程序包,其中包含移动平均函数。那就是我所需要的。我只是没有发现如何在几列中使用它:
library(TTR)
mavg.15day = SMA(testframe$V1, n=15)
不幸的是,它仅使用每个日期之前的15天。