R中的字符到日期时间,使用十进制小时数

问题描述 投票:0回答:1

我正在尝试将字符转换为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中的日期,就按日期和时间对数据框的行进行排序。

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

r date time data-conversion
1个回答
0
投票

这应该解决

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创建

© www.soinside.com 2019 - 2024. All rights reserved.