通过条件和R中的相关结果生成一系列时间戳记

问题描述

我希望获得一系列时间戳,从'2020-08-31 09:00:00'开始,到'2020-10-30 21:00:00'结束。我想将结果变量与之相关联,以使结果每30分钟100个,接下来5分钟1000个,接下来30分钟100个,依此类推。该系统的值在30分钟内为100,在接下来的5分钟内为1000,然后在30分钟内再次为100。

预先感谢

#Example OUTPUT

 TIMESTAMP                            OUTCOME
'2020-08-31 09:00:00'                 100   
'2020-08-31 09:30:00'                 1000
'2020-08-31 09:35:00'                 100
'2020-08-31 10:05:00'                 1000  
'2020-08-31 10:10:00'                 100  
'2020-08-31 10:40:00'                 1000

非常感谢

解决方法

我们可以使用seq

创建DateTime的向量
library(lubridate)
start <- as.POSIXct('2020-08-31 09:00:00')
timestamp <- c(start,start + minutes(cumsum(rep(c(30,5),2500))))
timestamp <- timestamp[timestamp <= '2020-10-30 21:00:00']
out <- data.frame(TIMESTAMP = timestamp,OUTCOME = rep(c(100,1000),length.out = length(timestamp)))
head(out)
#            TIMESTAMP OUTCOME
#1 2020-08-31 09:00:00     100
#2 2020-08-31 09:30:00    1000
#3 2020-08-31 09:35:00     100
#4 2020-08-31 10:05:00    1000
#5 2020-08-31 10:10:00     100
#6 2020-08-31 10:40:00    1000

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...