R:平均时间序列的非常基本的例子

时间:2014-01-30 10:38:50

标签: r time-series aggregate moving-average

我是R的新手,并研究了几个关于时间序列和移动平均的帖子和网站,但根本无法找到一段有用的提示,在一段特殊的时间内。

我的数据是一个通过readcsv的表,其中一列中包含日期和时间,其他几列包含值。数据中的时间步长不是恒定的,因此有时为5分钟,有时为2小时。例如

2014-01-25 14:50:00, 4, 8
2014-01-25 14:55:00, 3, 7
2014-01-25 15:00:00, 1, 4
2014-01-25 15:20:24, 12, 34
2014-01-25 17:19:00, 150, 225
2014-01-25 19:00:00, 300, 400
2014-01-25 21:00:00, NA, NA
2014-01-25 23:19:00, 312, 405

所以我寻找一个

的平均图
  1. 计算任意间隔的数据平均值,例如30分钟,1小时,1天等。因此应该汇总较低的步骤,并应分解较高的步骤。
  2. (删除,因为从时间序列D获得每小时的价值是微不足道的,时间序列D用D / x平均X小时。)
  3. 标记为NA的数据不应被考虑在内。因此,该函数不应插入/平滑Na间隙,并且执行线图不应连接NA间隙与线之间的点。
  4. 我已经尝试了

    aggregate(list(value1=data$value1,value2=data$value2), list(time=cut(data$time, "1 hour")), sum)
    

    但这不符合需求1和3,并且无法分解2小时的数据步骤。

1 个答案:

答案 0 :(得分:0)

回答第3点:plot会自动跳过NA个值并中断该行。

试试这个例子:

plot(c(1:5,NA,NA,6:10),t='l')

现在,如果您想纯粹出于图形目的而“平滑”或平均时间间隔,最简单的方法是先将每行的数据与NA分开,然后进行样条或其他平滑处理分别对每个小节进行操作。