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

jun*_*use 3 aggregate r converter

我有如下数据.它是从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")
Run Code Online (Sandbox Code Playgroud)

m0n*_*awk 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)
Run Code Online (Sandbox Code Playgroud)

随着group_bysummarizedplyrfloor_datelubridate可以做到这一点:

library(dplyr)
library(lubridate)

df %>%
  group_by(Hours=floor_date(ymd_hm(paste(Date, Hour)), "1 hour")) %>%
  summarize(Val=sum(Val))

# # A tibble: 7 x 2
#   Hours                  Val
#   <dttm>               <dbl>
# 1 2013-03-06 06:00:00   0   
# 2 2013-03-06 12:00:00   2.30
# 3 2013-03-06 13:00:00  17.0 
# 4 2013-03-06 14:00:00  12.0 
# 5 2013-03-06 15:00:00  21.5 
# 6 2013-03-06 16:00:00   0   
# 7 2013-03-06 19:00:00 -10.0 
Run Code Online (Sandbox Code Playgroud)