如何在不改变小时数的情况下操纵日期值?

时间:2018-04-16 16:22:40

标签: r data-mining

time<- as.POSIXct( db$times, format="%H:%M")
time <-  as.Date(time_booked)-1               #Change day to previous day
time <-as.POSIXct(time,format="%H:%M") #Times for yesterday 

我需要将日值更改为昨天(即第1天)。第一行格式化数据帧的时间(例如“2018-04-16 19:00:00 BST”)。而第二行可以改变一天(即16到15)没有问题,但我失去了时间。如果我运行第三行,它默认为“01:00:00”。

有没有办法在不丢失时间的情况下更改当天的价值?

1 个答案:

答案 0 :(得分:0)

您可以从日期时间对象中扣除86400秒(24小时* 60分钟* 60秒)。

date <- as.POSIXct( "2018-04-16 19:00:00", format="%Y-%m-%d %H:%M")
date - 86400
[1] "2018-04-15 19:00:00 CEST"

或使用lubridate

library(lubridate)
date - ddays()
[1] "2018-04-15 19:00:00 CEST"