r - 给定总消耗、开始和结束时间,有没有办法计算每 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)
解决方案
这是你想要的?
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
推荐阅读
- azure - 使用本地 API 进行 Azure API 管理
- c# - c#如果斜线上方或下方的所有数字都等于0,如何检查二维矩阵?
- python - CPython 中评估堆栈的大小
- octave - 识别 GNU Octave 中的变量类型
- python - 如何在 Python 中覆盖对象参数的值?
- javascript - chrome中的快递请求超时
- python-3.x - 如何使用 Python 3 更新 Couchbase 中文档的过期时间?
- javascript - 如何根据标签的文本颜色或激活/停用的暗模式更改标签类别?
- ios - 如何快速在 UIImageView 上添加 UIView
- asp.net-identity - 使用 .NET Core 身份并需要刷新令牌