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

如何在R中为15000条数据创建00:00-23:59时间循环序列

R批量匹配全时段时间序列操作方案

核心逻辑为将原始时间字段转换为标准化格式后,生成00:00-23:59的全时段序列,通过笛卡尔积关联到所有原始条目,15000条量级的运算无性能压力,具体实现代码如下:

# 加载依赖包
library(lubridate)
library(dplyr)
library(tidyr)
# 原始示例数据修正(原代码遗漏时间字符串引号)
df <- data.frame(
  id = c(1, 2, 3, 4),
  Timeoutside = c("08:30:46.000", "07:20:18.000", "07:46:08.000", "07:27:44.000"),
  Timeinside = c("13:36:40.000", "10:04:40.000", "11:59:05.000", "12:22:05.000")
)
# 1. 转换原始时间列为R可识别的标准化时间格式
df <- df %>%
  mutate(
    Timeoutside = hms(Timeoutside),
    Timeinside = hms(Timeinside)
  )

# 2. 生成全时段序列,可根据需求调整粒度,by参数支持"sec"/"min"/"10 min"/"hour"等值
full_time_seq <- tibble(
  full_time = seq(hms("00:00:00"), hms("23:59:00"), by = "min")
)

# 3. 关联所有条目与全时段序列,得到每条数据对应的新增时间列
result <- df %>%
  crossing(full_time_seq)
# 可选过滤逻辑:仅保留条目出入时间范围内的时段,减少冗余数据
result_filtered <- result %>%
  filter(full_time >= Timeoutside & full_time <= Timeinside)
  • 按分钟粒度运算时,15000条数据关联后总数据量约2160万行,普通配置电脑运算耗时不超过10秒
  • 输出结果中的full_time字段即为需要新增的单独时间列,可直接用于后续计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:36:06