如何基于开始时间创建具有不同间隔的时间序列

时间:2019-08-13 07:41:23

标签: r

我想根据开始时间生成一个时间序列,间隔为前15分钟,然后重复30分钟和4x 20分钟的间隔。我是R的新手,所以真的不知道从哪里开始。

2 个答案:

答案 0 :(得分:0)

start_time <- "2019-08-13 12:00"

intervals <- c(0, 15, 30, rep(20,4))

seconds <- cumsum(intervals)*60

lapply(seconds, function(x)strptime(start_time, format="%Y-%m-%d %H:%M") + x) 

# [[1]]
# [1] "2019-08-13 12:00:00 +08"
# 
# [[2]]
# [1] "2019-08-13 12:15:00 +08"
# 
# [[3]]
# [1] "2019-08-13 12:45:00 +08"
# 
# [[4]]
# [1] "2019-08-13 13:05:00 +08"
# 
# [[5]]
# [1] "2019-08-13 13:25:00 +08"
# 
# [[6]]
# [1] "2019-08-13 13:45:00 +08"
# 
# [[7]]
# [1] "2019-08-13 14:05:00 +08"

答案 1 :(得分:0)

如果要使用日期和时间,则@Adam Quek的回答是可以的。另外,如果只想使用时间,则可以使用chron包中的“ times”类。 例如,您可以通过输入以下内容将开始时间设置为9点:

starting<-times("09:00:00")

然后您可以通过以下方式添加15分钟:

starting+times("00:15:00")
[1] 09:15:00

您还可以将分子中要加上的分钟数和分母中一天中的分钟数(60 * 24 = 1440)相加的分数

starting+15/1440
[1] 09:15:00

因此,您可以通过以下方式创建序列:

minutesToAdd<-c(0,15,30,rep(20,4))
starting + cumsum(minutesToAdd/1440)
[1] 09:00:00 09:15:00 09:45:00 10:05:00 10:25:00 10:45:00 11:05:00