使用小数小时从字符到 R 中的日期时间

From character to dates-time in R using decimal hours

我正在尝试将字符转换为 R 中的日期。

我的数据格式如下:

df <- data.frame(Date = c("23Jul2019 11:51:09 AM","23Jul2019 11:53:09 AM","19Jul2019 2:30:06 PM","01Aug2019 3:00:17 PM"))

基于此处找到的解决方案: Convert character to Date in R

我可以用

> as.Date(df$Date, "%d/%b/%Y %I:%M:%S %p") 
[1] NA NA NA NA

%I 用于十进制小时 (12h) 和 %p 区域设置特定 AM/PM (https://www.stat.berkeley.edu/~s133/dates.html) 但由于某种原因,它 returns NAs.

我的目标是在字符格式的日期转换为 R 中的日期后按日期和时间对数据帧的行进行排序。

我使用的代码有什么问题?

这应该可以解决

library(tidyverse)
library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#> 
#>     date
df <- data.frame(Date = c("23Jul2019 11:51:09 AM","23Jul2019 11:53:09 AM","19Jul2019 2:30:06 PM","01Aug2019 3:00:17 PM"))

df %>% 
  mutate(r_date_time = Date %>% dmy_hms)
#>                    Date         r_date_time
#> 1 23Jul2019 11:51:09 AM 2019-07-23 11:51:09
#> 2 23Jul2019 11:53:09 AM 2019-07-23 11:53:09
#> 3  19Jul2019 2:30:06 PM 2019-07-19 14:30:06
#> 4  01Aug2019 3:00:17 PM 2019-08-01 15:00:17

dmy_hms(df$Date) 
#> [1] "2019-07-23 11:51:09 UTC" "2019-07-23 11:53:09 UTC"
#> [3] "2019-07-19 14:30:06 UTC" "2019-08-01 15:00:17 UTC"

reprex package (v0.3.0)

于 2020 年 1 月 14 日创建