От символа к дате-времени в R с использованием десятичных часов - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь преобразовать символы в даты в 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"))

Основано на найденном здесь решении: Преобразовать символ в Дата в R

Я мог бы использовать

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

% I для десятичного часа (12 ч) и% p, зависящие от локали c AM / PM (https://www.stat.berkeley.edu/~s133/dates.html), но по какой-то причине он возвращает NA.

Моя цель состоит в том, чтобы отсортировать строки кадра данных по дате и времени после даты в формате символов, преобразованном в даты в R.

В чем проблема с кодом, который я использую?

1 Ответ

1 голос
/ 14 января 2020

Это должно решить эту проблему

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"

Создано в 2020-01-14 с помощью пакета представительства (v0.3.0)

...