在 R 中解析 24:00 AM 日期时间
Parse 24:00 AM datetime in R
我有一些数据的午夜日期格式非常规。在原始数据中,午夜被视为 "1/1/2018 24:00 AM"
而不是 "1/2/2018 00:00 AM"
。为什么会有人这样做?!
我想将此字符向量转换为 POSIXct()
格式。
下面是一些示例数据:
datetime <- c("1/1/2018 11:00 PM", "1/1/2018 24:00 AM", "1/2/2018 01:00 AM")
以下代码无法解析午夜,但可以执行我想要的其他操作:
as.POSIXct(datetime, format = "%m/%d/%Y %I:%M %p")
这个returns以下:
[1] "2018-01-01 23:00:00 GMT" NA "2018-01-02 01:00:00 GMT"
另一种方法是使用 lubridate::mdy_hm
,它会在第二天将 24:00 AM
正确解析为 00:00 AM
。
library(lubridate)
mdy_hm(datetime)
#[1] "2018-01-01 23:00:00 UTC" "2018-01-02 00:00:00 UTC"
#[3] "2018-01-02 01:00:00 UTC"
我有一些数据的午夜日期格式非常规。在原始数据中,午夜被视为 "1/1/2018 24:00 AM"
而不是 "1/2/2018 00:00 AM"
。为什么会有人这样做?!
我想将此字符向量转换为 POSIXct()
格式。
下面是一些示例数据:
datetime <- c("1/1/2018 11:00 PM", "1/1/2018 24:00 AM", "1/2/2018 01:00 AM")
以下代码无法解析午夜,但可以执行我想要的其他操作:
as.POSIXct(datetime, format = "%m/%d/%Y %I:%M %p")
这个returns以下:
[1] "2018-01-01 23:00:00 GMT" NA "2018-01-02 01:00:00 GMT"
另一种方法是使用 lubridate::mdy_hm
,它会在第二天将 24:00 AM
正确解析为 00:00 AM
。
library(lubridate)
mdy_hm(datetime)
#[1] "2018-01-01 23:00:00 UTC" "2018-01-02 00:00:00 UTC"
#[3] "2018-01-02 01:00:00 UTC"