将季度数据更改为每小时数据

时间:2018-02-03 21:00:41

标签: r converter aggregate

我的数据如下。它是从2015年1月1日〜2015年12月31日。 数据按季度计算。但我想添加,例如,像0:00,0:15,0:30,0:45一样来制作小时数据。如何将其转换为每小时数据?

提前谢谢。

  Date      Hour Day-ahead Total Load Forecast [MW] - Germany (DE)
01.01.2015  0:00    42955
01.01.2015  0:15    42412
01.01.2015  0:30    41901
01.01.2015  0:45    41355
01.01.2015  1:00    40710
01.01.2015  1:15    40204
01.01.2015  1:30    39640
01.01.2015  1:45    39324
01.01.2015  2:00    39002
01.01.2015  2:15    38869
01.01.2015  2:30    38783
01.01.2015  2:45    38598
01.01.2015  3:00    38626
01.01.2015  3:15    38459
01.01.2015  3:30    38414
...


   > dput(head(new3))
structure(list(Date = structure(c(16436, 16436, 16436, 16436, 
16436, 16436), class = "Date"), Hour = c("0:00", "0:15", "0:30", 
"0:45", "1:00", "1:15"), Dayahead = c("42955", "42412", "41901", 
"41355", "40710", "40204"), Actual = c(42425L, 42021L, 42068L, 
41874L, 41230L, 40810L), Difference = c("530", "391", "-167", 
"-519", "-520", "-606")), .Names = c("Date", "Hour", "Dayahead", 
"Actual", "Difference"), row.names = c(NA, 6L), class = "data.frame")

2 个答案:

答案 0 :(得分:5)

我创建了一个小数据集。

df <- read.csv(text = "Date,Hour,Val
2013-06-03,06:01,0
2013-06-03,12:08,-1
2013-06-03,12:48,3.3
2013-06-03,13:58,2
2013-06-03,13:01,12
2013-06-03,13:08,3
2013-06-03,14:48,4
2013-06-03,14:58,8
2013-06-03,15:01,9.2
2013-06-03,15:08,12.3
2013-06-03,16:48,0
2013-06-03,19:58,-10", stringsAsFactors = FALSE)

来自group_by的{​​{1}}和summarize以及dplyr的{​​{1}}可以完成此操作:

floor_date

答案 1 :(得分:3)

假设你的数据框叫做df

> head(df)
        Date        Hour Forecast
1 01.01.2015 12:00:00 AM    42955
2 01.01.2015 12:15:00 AM    42412
3 01.01.2015 12:30:00 AM    41901
4 01.01.2015 12:45:00 AM    41355
5 01.01.2015 01:00:00 AM    40710
6 01.01.2015 01:15:00 AM    40204

您可以通过以下代码将预测汇总到每小时

library(lubridate)
df$DateTime=paste(df$Date,df$Hour,sep=" ")%>%dmy_hms%>%floor_date(unit="hour")
result<-ddply(df,.(DateTime),summarize,x=sum(Forecast))
> result
             DateTime      x
1 2015-01-01 00:00:00 168623
2 2015-01-01 01:00:00 159878
3 2015-01-01 02:00:00 155252
4 2015-01-01 03:00:00 115499

变量x具有每小时的预测总和。时间戳00:00:00汇总时间00:00,00:15,00:30,00:45。