首页 > 解决方案 > 给定总消耗、开始和结束时间,有没有办法计算每 30 分钟间隔的总功耗?

问题描述

所以我有一个带有充电会话的数据框。每个充电会话都有一个开始时间、一个结束时间以及在开始和结束时间之间的会话期间消耗的总 kwh。

充电会话的开始和结束时间确实重叠,而不是同时在多个充电站上发生。我需要知道所有充电时段和充电站每 30 分钟间隔消耗的总千瓦时

start.time <- c(
"2020-01-01 02:04:14 GMT", "2020-01-01 13:40:42 GMT", 
"2020-01-01 16:37:10 GMT", "2020-01-01 22:45:54 GMT",
"2020-01-02 12:17:41 GMT","2020-01-02 15:52:12 GMT")

end.time <- c(
"2020-01-01 09:42:50 GMT", "2020-01-01 14:24:48 GMT",
"2020-01-01 16:50:23 GMT","2020-01-02 02:11:46 GMT",
"2020-01-02 15:00:28 GMT","2020-01-02 16:08:50 GMT")

total.kwh <- c(23.493, 2.475, 0.691, 2.418, 9.778, 0.894)

标签: rdataframetime-series

解决方案


这是你想要的?

library(dplyr)

df <- tibble(start.time, end.time, total.kwh)

df <- df %>% mutate(kwh.per.30mins = total.kwh*30/as.numeric(difftime(end.time, start.time, units = "mins")))

df
# A tibble: 6 x 4
  start.time              end.time                total.kwh kwh.per.30mins
  <chr>                   <chr>                       <dbl>          <dbl>
1 2020-01-01 02:04:14 GMT 2020-01-01 09:42:50 GMT    23.5            1.54 
2 2020-01-01 13:40:42 GMT 2020-01-01 14:24:48 GMT     2.48           1.68 
3 2020-01-01 16:37:10 GMT 2020-01-01 16:50:23 GMT     0.691          1.57 
4 2020-01-01 22:45:54 GMT 2020-01-02 02:11:46 GMT     2.42           0.352
5 2020-01-02 12:17:41 GMT 2020-01-02 15:00:28 GMT     9.78           1.80 
6 2020-01-02 15:52:12 GMT 2020-01-02 16:08:50 GMT     0.894          1.61 

推荐阅读