在R润滑油中解析日期时间有问题



我试图解析我的日期时间,它一直显示我"所有格式都无法解析。没有找到任何格式。">

这是我一直试图解析和代码的时间。

datetime_clean <- c("4:10 pm Sept 18, 2021", "12:06 pm Sept 18, 2021", "9:42 am Sept 18, 2021")
datetime_parse <- parse_date_time(
datetime_clean, "%I:%M %p %m/%d/%Y" 
)

我们可以用base R中的as.POSIXct。月的格式为%b,但有一个额外的字母长,即%b-表示缩写月名,它是前三个字母而不是四个字母)。一种选择是用sub删除第四个字母,并使用%b代替%m

datetime_clean <- sub("([A-Za-z]{3})[a-z]", "\1", datetime_clean)
as.POSIXct(datetime_clean, format = "%I:%M %p  %b %d, %Y")

与产出

[1] "2021-09-18 16:10:00 EDT" "2021-09-18 12:06:00 EDT" "2021-09-18 09:42:00 EDT"

或与lubridate

lubridate::parse_date_time(datetime_clean, '%I:%M %p %b %d, %Y')

与产出

[1] "2021-09-18 16:10:00 UTC" "2021-09-18 12:06:00 UTC" "2021-09-18 09:42:00 UTC"

这也可以用parsedate::parse_date自动解析(从原始对象开始,不需要修改sub)

parsedate::parse_date(datetime_clean)
[1] "2021-09-18 16:10:00 UTC" "2021-09-18 12:06:00 UTC" "2021-09-18 09:42:00 UTC"

数据
datetime_clean <- c("4:10 pm Sept 18, 2021", "12:06 pm Sept 18, 2021" ,"9:42 am Sept 18, 2021")

最新更新