R几年来的天数趋势

时间:2019-06-12 11:32:55

标签: r date lm lubridate trend

我想用这个测试框架计算出不同的趋势。

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列具有不同的值。

我想做两件事:

  1. 计算多年来每天的值趋势。所以最后我只有一列,每一天(无年),然后是每一天的值V1-V4的斜率。应该计算2000年到2010年之间每天的斜率。

  2. 与上面相同,但是这次我不仅要计算每一天的斜率,还想获取每一天之前15天和之后15天的平均值。因此对于例如的值的斜率2000-02-01,我希望获得2000-01-17至2000-02-16的所有值的平均值。在这几天过后,我想做与上述相同的事情。

到目前为止,我唯一的努力就是创建“日”列以将其用于aggregate命令...但是到目前为止,它并没有带给我任何地方。

更新:我发现了一个名为TTR的好程序包,其中包含移动平均函数。那就是我所需要的。我只是没有发现如何在几列中使用它:

library(TTR)
mavg.15day = SMA(testframe$V1, n=15)

不幸的是,它仅使用每个日期之前的15天。

0 个答案:

没有答案