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

如何从分钟级时间向量中提取自定义时间间隔?

自定义时间间隔分组实现方案

先回顾你的基础代码:

# 生成1分钟间隔的时间向量
m1 <- seq(as.POSIXct("2020-02-20 09:00:00"), as.POSIXct("2020-02-20 18:00:00"), by="min")

# 加载lubridate包
library(lubridate)

要提取自定义时间间隔的分组标记,核心是把每个时间点映射到所属的间隔区间,以下是对应res矩阵的完整实现:

res <- cbind(
  min1  = minute(m1),  # 原分钟数
  min5  = (minute(m1) %/% 5) * 5,  # 5分钟间隔:取当前分钟所属的5分钟区间起始分钟
  hour1 = hour(m1),    # 原小时数
  hour6 = (hour(m1) %/% 6) * 6     # 6小时间隔:取当前小时所属的6小时区间起始小时
)

# 查看前几行结果验证
head(res)

其他自定义间隔的扩展实现

  • 15分钟间隔:把代码里的5换成15即可:
    min15 = (minute(m1) %/% 15) * 15
    
  • 12小时间隔:把代码里的6换成12:
    hour12 = (hour(m1) %/% 12) * 12
    

用lubridate的floor_date函数实现(更直观)

如果觉得整除计算不够直观,也可以用floor_date函数直接将时间向下取整到指定间隔,再提取对应时间单位:

res <- cbind(
  min1  = minute(m1),
  min5  = minute(floor_date(m1, "5 mins")),
  hour1 = hour(m1),
  hour6 = hour(floor_date(m1, "6 hours"))
)

两种方式效果一致,可根据习惯选择。

内容的提问来源于stack exchange,提问作者mr.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:32:12