You need to enable JavaScript to run this app. 在R中实现分钟级卡路里数据按小时聚合求和的方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

在R中实现分钟级卡路里数据按小时聚合求和的方法咨询

R 按小时聚合卡路里数据实现方案

方案1:dplyr + lubridate 实现(易上手,适配大多数场景)

结合lubridate包做时间维度处理,再用dplyr的分组汇总逻辑即可实现和SQL GROUP BY + SUM 完全等价的效果,示例代码如下:

# 加载依赖包
library(dplyr)
library(lubridate)

# 时间格式转换(如果你的时间列已经是POSIXt格式可跳过这一步)
min_cal_narrow <- min_cal_narrow %>%
  mutate(你的时间列名 = ymd_hms(你的时间列名)) # 可根据实际时间格式替换为mdy_hms/dmy_hms等

# 按小时聚合计算
hourly_cal <- min_cal_narrow %>%
  # 将时间统一归并到对应小时的起始时间,作为分组键
  mutate(hour = floor_date(你的时间列名, unit = "hour")) %>%
  group_by(hour) %>%
  summarise(hour_total_cal = sum(你的卡路里列名, na.rm = TRUE))
  • 代码中的你的时间列名、你的卡路里列名替换为数据集里的实际字段名即可使用
  • na.rm = TRUE参数会自动跳过空值避免计算结果返回NA,无空值可以删除该参数

方案2:data.table 实现(大数据量下性能更优)

如果数据集行数超10万,推荐用data.table实现,运行效率更高:

library(data.table)
library(lubridate)

# 转换为data.table格式
setDT(min_cal_narrow)
# 时间格式转换,非时间格式字段需要先转
min_cal_narrow[, 你的时间列名 := ymd_hms(你的时间列名)]
# 按小时聚合
hourly_cal <- min_cal_narrow[, .(hour_total_cal = sum(你的卡路里列名, na.rm = TRUE)), 
                             by = .(hour = floor_date(你的时间列名, unit = "hour"))]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:18:02