r - R 几年的天数趋势
问题描述
我想用这个测试框架计算不同类型的趋势。
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)
我有一个包含确切日期的日期列。days 列包含提取的日期和月份,然后我有 4 个具有不同值的列。
我想做两件不同的事情:
计算多年来每一天的值的趋势。所以最后我只有一列,每一天(没有年份),然后是每一天的值 V1-V4 的斜率。应计算 2000 年至 2010 年的每一天的斜率。
与上面相同,但这次我不仅要计算每一天的斜率,还要取每一天前 15 天和后 15 天的值的平均值。因此,对于例如 2000-02-01 的值的斜率,我想要从 2000-01-17 到 2000-02-16 的所有值的平均值。在我有了这些天的平均值之后,我想做和上面一样的事情。
到目前为止,我唯一的努力是创建“Day”列以将其用于aggregate
命令……但到目前为止它并没有带我到任何地方。
更新:我发现了一个不错的包TTR
,其中包含一个移动平均函数。这就是我需要的。我只是没有找到如何将它用于几列:
library(TTR)
mavg.15day = SMA(testframe$V1, n=15)
不幸的是,它只使用每个日期前的 15 天。
解决方案
推荐阅读
- sql - 如果新父母已经有了孩子,如何移动hierarchyid子树?
- c# - 如何将列表中的数据放入 DataGridView?
- avfoundation - tvOS - AVPlayerViewController - 频道翻转如何工作?
- spring - 我们可以在 Spring MVC 应用程序中拥有多个控制器吗?
- opencv - 如何测量文本大小以仅从 OpenCV 中的图像中提取某些字母?
- laravel - Laravel 按多字段排序集合
- r - R Shiny updateSelectizeInput 抛出错误并且不更新
- mysql - SQL CTE 的问题
- python - 一个函数看起来如何,可以将另一个函数添加到在 python 中并行运行的函数列表中?
- c# - C# 键值默认为键