首页 > 解决方案 > 如何在R中的服务日内生成特定时期

问题描述

我想在服务天生成相同的时间段,例如每天从 09:30:00 到 16:00:00,我知道

dates<- seq(as.POSIXct("2000-01-01 9:00",tz='UTC'), as.POSIXct("2000-04-9 16:00",tz='UTC'), by=300)

可以帮助我获得 100 天 24 小时内每 5 分钟观察一次的时间序列。但我想要的是 100 天内的 09:30:00 到 16:00:00。提前致谢

标签: rtime-series

解决方案


这是一种方法。我们可以为每一天创建一个日期序列,然后以五分钟的间隔为每一天创建一个子列表。最后,我们可以合并这个列表。final_seq是最终的输出。

date_seq <- seq(as.Date("2000-01-01"), as.Date("2000-04-09"), by = 1)

hour_seq <- lapply(date_seq, function(x){
  temp_date <- as.character(x)
  temp_seq <- seq(as.POSIXct(paste(temp_date, "09:30"), tz = "UTC"),
                  as.POSIXct(paste(temp_date, "16:00"), tz = "UTC"),
                  by = 300)
})

final_seq <- do.call("c", hour_seq)

推荐阅读