【发布时间】:2019-12-18 15:44:12
【问题描述】:
我正在处理半小时分辨率的智能电表数据。由于数据量巨大,我正试图从半小时分辨率减少到每小时分辨率。在这样做时,我试图将两个半小时测量之间的消耗相加。问题是我的数据框中也有分类数据,在使用 xts 时会丢失。这是我的数据的样子:
> head(test1)
LCLid stdorToU DateTime KWH.hh..per.half.hour. Acorn Acorn_grouped
1 MAC000002 Std 2012-10-12 00:30:00 0 ACORN-A Affluent
2 MAC000002 Std 2012-10-12 01:00:00 0 ACORN-A Affluent
3 MAC000002 Std 2012-10-12 01:30:00 0 ACORN-A Affluent
4 MAC000002 Std 2012-10-12 02:00:00 0 ACORN-A Affluent
5 MAC000002 Std 2012-10-12 02:30:00 0 ACORN-A Affluent
6 MAC000002 Std 2012-10-12 03:00:00 0 ACORN-A Affluent
这是我一直在尝试使用的代码和我得到的结果。
test1 <- read.csv("test.csv", stringsAsFactors = F)
test1$DateTime <- ymd_hms(test1$DateTime)
test1$KWH.hh..per.half.hour. <- as.numeric(test1$KWH.hh..per.half.hour.)
test2 <- xts(test1$KWH.hh..per.half.hour., test1$DateTime)
head(test2)
period.apply(test2, endpoints(test2, "hours"), sum)
> period.apply(test2, endpoints(test2, "hours"), sum)
[,1]
2012-10-12 00:30:00 0.000
2012-10-12 01:30:00 0.000
2012-10-12 02:30:00 0.000
2012-10-12 03:30:00 0.000
2012-10-12 04:30:00 0.000
2012-10-12 05:30:00 0.000
2012-10-12 06:30:00 0.000
2012-10-12 07:30:00 0.000
2012-10-12 08:30:00 0.000
2012-10-12 09:30:00 0.000
2012-10-12 10:30:00 0.000
理想情况下,我需要一个与原始数据集 (test1) 完全相同的数据集,只是按每小时而不是每半小时汇总的一半大小。有人可以帮忙吗?
谢谢
【问题讨论】:
标签: r time-series