问题描述
我已经尝试过将分数转换为日期时间
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"