如何解决尽管在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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。