【发布时间】:2019-08-02 18:11:53
【问题描述】:
我有一个分辨率为 5 分钟的时间序列,我想汇总(平均)每个类别 (X/Y/Z) 变量在 30 分钟间隔内的所有值。
我在 SO 上发现了很多线程,但它们都不是每半小时聚合一次,我不知道如何将半小时聚合与第二列结合起来。此外,如果有 data.table 解决方案,我将不胜感激,因为它具有卓越的性能。原始表格有几百万行,包含上千个类别。
我的数据如下所示:
+---------------------+------+------------+
| Timestamp | DUID | Meter_Prod |
+---------------------+------+------------+
| 2018-03-01 00:00:00 | X | 1 |
| 2018-03-01 00:00:00 | Y | 2 |
| 2018-03-01 00:00:00 | Z | 3 |
| 2018-03-01 00:05:00 | X | 1 |
| 2018-03-01 00:05:00 | Y | 2 |
| 2018-03-01 00:05:00 | Z | 3 |
| ... | | |
| 2018-03-01 00:55:00 | X | 1 |
| 2018-03-01 00:55:00 | Y | 2 |
| 2018-03-01 00:55:00 | Z | 3 |
+---------------------+------+------------+
我想要这个
+---------------------+------+--------------------+
| Timestamp | DUID | Meter_Prod_Average |
+---------------------+------+--------------------+
| 2018-03-01 00:00:00 | X | 1 |
| 2018-03-01 00:00:00 | Y | 2 |
| 2018-03-01 00:00:00 | Z | 3 |
| 2018-03-01 00:30:00 | X | 1 |
| 2018-03-01 00:30:00 | Y | 2 |
| 2018-03-01 00:30:00 | Z | 3 |
+---------------------+------+--------------------+
此处上传了一个示例数据框:https://pastebin.com/4bESGTKH
【问题讨论】:
标签: r dataframe data.table time-series