【发布时间】:2019-12-07 21:16:18
【问题描述】:
我正在为时间序列分析设置一个大型数据集。数据具有日期开始时间和日期结束时间。
数据输入为结束时间的 24:00:00,我现在已将其转换为 00:00:00。我想将在 00:00:00 完成的所有最终数据向前移动一天。
#Current database
id<-c("m1","m1","m1","m2","m2","m2","m3","m4","m4")
x<-c("2020-01-03 10:00:00","2020-01-03 16:00:00","2020-01-03
19:20:00","2020-01-05 10:00:00","2020-01-05 15:20:00","2020-01-05
20:50:00","2020-01-06 06:30:00","2020-01-08 06:30:00","2020-01-08
07:50:00")
start<-strptime(x,"%Y-%m-%d %H:%M:%S")
y<-c("2020-01-03 16:00:00","2020-01-03 19:20:00","2020-01-03
00:00:00","2020-01-05 15:20:00","2020-01-05 20:50:00","2020-01-05
00:00:00","2020-01-06 07:40:00","2020-01-08 07:50:00","2020-01-08
08:55:00")
end<-strptime(y,"%Y-%m-%d %H:%M:%S")
mydata<-data.frame(id,start,end)
#Output
id2<-c("m1","m1","m1","m2","m2","m2","m3","m4","m4")
x2<-c("2020-01-03 10:00:00","2020-01-03 16:00:00","2020-01-03
19:20:00","2020-01-05 10:00:00","2020-01-05 15:20:00","2020-01-05
20:50:00","2020-01-06 06:30:00","2020-01-08 06:30:00","2020-01-08
07:50:00")
start2<-strptime(x2,"%Y-%m-%d %H:%M:%S")
y2<-c("2020-01-03 16:00:00","2020-01-03 19:20:00","2020-01-04
00:00:00","2020-01-05 15:20:00","2020-01-05 20:50:00","2020-01-06
00:00:00","2020-01-06 07:40:00","2020-01-08 07:50:00","2020-01-08
08:55:00")
end2<-strptime(y2,"%Y-%m-%d %H:%M:%S")
mydata2<-data.frame(id2,start2,end2)
我希望第 3 行和第 6 行的输出将日期提前一天。是“if”函数还是有更简单的方法?
【问题讨论】:
标签: r time time-series