You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何跨不同行取值计算时间差乘功率的能耗总和

R 相邻时间戳差计算总能耗实现方案

初始测试数据

构建的初始数据框代码如下:

df <- data.frame(time=c("10:01","10:05","10:11","10:21"),
                 power=c(30,32,35,36))

实现逻辑

跨行计算相邻行差值不需要复杂循环或第三方依赖,直接用R内置函数即可完成:

  • 先将字符型时间字段转换为支持算术运算的时间格式
  • 用diff()函数直接计算时间向量相邻元素的差值,自动得到每个时段的时长,返回结果长度为原数据行数-1,刚好对应前n-1行的时段
  • 功率字段去掉最后一个值(最后一行没有后续时间戳,不参与计算),和时间差向量长度对齐后对应相乘,最后求和得到总能耗

可直接运行的代码

# 转换时间格式+计算时间差+匹配功率+求和
E <- sum(
  diff(as.POSIXct(df$time, format = "%H:%M"), units = "mins") 
  * head(df$power, -1)
)

# 打印结果
print(E)

运行后即可得到预期结果E=662。

计算校验

各时段计算明细:

  • 10:01~10:05:时长4分钟,功率30,乘积120
  • 10:05~10:11:时长6分钟,功率32,乘积192
  • 10:11~10:21:时长10分钟,功率35,乘积350
  • 总和:120+192+350=662,和预期结果一致。

内容的提问来源于stack exchange,提问作者WestCoast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.19 16:15:45