我怎样才能在不改变时间的情况下在这里操纵日值?

How can I manipulate the day value here without changing the hours?

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”。

有没有办法在不浪费我的时间的情况下只改变那一天的价值?

您可以从日期时间对象中扣除 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"