【发布时间】:2014-01-30 10:38:49
【问题描述】:
我对 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
所以我寻找一个平均图
- 以任意间隔(例如 30 分钟、1 小时、1 天等)计算数据平均值。因此应汇总较低的步骤,而应分解较高的步骤。
- (已删除,因为从时间序列 D 中获取每小时值是微不足道的,该时间序列 D 用 D/x 平均 X 小时。)
- 不应考虑标记为 NA 的数据。因此,该函数不应通过 Na 间隙进行插值/平滑处理,并且执行线图不应将 NA 间隙与线之间的点连接起来。
我已经试过了
aggregate(list(value1=data$value1,value2=data$value2), list(time=cut(data$time, "1 hour")), sum)
但这不能满足需求 1 和 3,并且无法分解每 2 小时的数据步骤。
【问题讨论】:
-
你能提供一个数据框样本或数据链接吗?
-
你能定义“每小时价值”并解释它与平均值有何不同吗?至于第 3 点,大多数
R函数都有一个na.rm或na.omit参数,可以从计算中删除NA,但不清楚您所说的“不连接点”是什么意思。 -
我试图在这个编辑中解释更多。当时间步长不恒定时,执行简单均值无法正确聚合/分解。
-
所以当 R 社区没有回答时,我猜想没有解决方案?
-
找到两个链接,这可能会帮助您解决问题:stat.ethz.ch/pipermail/r-help/2012-August/334180.html 通常,如果您想要一个好的链接来开始您的 R 中时间序列分析之旅,此链接可能会有所帮助:@987654322 @如果有帮助,请告诉我。
标签: r time-series aggregate moving-average