我陷入了 R 困境。我需要将每分钟的数据聚合到每 30 分钟。我的数据框是这样的:
Date Time Power
2008-10-11 23:57:00 0.376
2008-10-11 23:58:00 0.374
2008-10-11 23:59:00 0.374
2008-10-12 0:00:00 0.334
2008-10-12 0:01:00 0.330
...
2008-12-13 19:24:00 1.390
2008-12-13 19:25:00 1.370
2008-12-13 19:26:00 1.368
2008-12-13 19:27:00 1.362
2008-12-13 19:28:00 1.352
2008-12-13 19:29:00 1.360
...
基本上,我有 2008 年的 500,979 行数据。每分钟给出一个幂值。为了进行时间序列,我需要每 30 分钟聚合一次数据。这最终会给我大约 17,520 行。我的问题是:
当“功效”列缺少一些值时,是否可以绘制时间序列?
如何按 30 分钟聚合 Power 值? (例如,0:00:00 至 0:29:00;0:30:00 至 0:59:00)
非常感谢!
最佳答案
使用dplyr
,您可以执行下一步(您可以将mean
更改为聚合函数):
df %>%
mutate(DateTime = as.POSIXct(paste(Date, Time))) %>%
group_by(DateTime = cut(DateTime, breaks="30 min")) %>%
summarize(Power = mean(Power))
将产生下一个输出:
DateTime Power
<fctr> <dbl>
1 2008-10-11 23:57:00 0.3576
2 2008-12-13 18:57:00 1.3760
3 2008-12-13 19:27:00 1.3580
关于r - 如何在 R 中每 30 分钟聚合一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40252525/