我正在尝试将字符转换为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),但由于某些原因,它返回NA。
我的目标是,一旦将字符格式的日期转换为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
由reprex package(v0.3.0)在2020-01-14创建