尽管在r中使用as.POSIXct的午夜时间,日期仍未更改

问题描述

我已经尝试过将分数转换为日期时间

daytime = c("0.999259259259259","0.000162037037037037","0.00106481481481481")

as.POSIXct(as.numeric((daytime)) * 24 * 60 * 60,origin = "2019-08-02 ",tz="GMT")

我得到了

"2019-08-02 23:58:56 GMT"  
"2019-08-02 00:00:14 GMT"  
"2019-08-02 00:01:32 GMT"  

但是我应该得到

"2019-08-02 23:58:56 GMT"  
"2019-08-03 00:00:14 GMT"   
"2019-08-03 00:01:32 GMT"

白天太大。我在这里使用3个值作为示例。我正在寻找建议。预先感谢。

解决方法

您可以使用diff()来确定何时输入新的一天。

daytime = c("0.999259259259259","0.000162037037037037","0.00106481481481481")
daytime <- as.numeric(daytime)

(new_day <- cumsum(c(F,diff(daytime) < 0)))
# [1] 0 1 1

as.POSIXct((daytime + new_day) * 24 * 60 * 60,"GMT",origin = "2019-08-02")

# [1] "2019-08-02 23:58:56 GMT"
# [2] "2019-08-03 00:00:14 GMT"
# [3] "2019-08-03 00:01:32 GMT"

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...