Как отформатировать эти времена в R

#r #datetime

#r #дата-время

Вопрос:

У меня есть несколько строк необычного формата, которые мне нужны для ввода в объекты datetime, и я не могу найти то, что мне нужно, в документации функции strptime. Примеры строк, которые мне нужно отформатировать, следующие:

 4/16/2018 0:00:00
8/30/2019 14:35:00
11/15/2017 8:15:10
  

Я не могу найти ни одной спецификации, которая соответствовала бы этим типам строк, которые я мог бы использовать как format в strptime . Нужно ли мне сначала форматировать строки?

Ответ №1:

Мы можем использовать формат "%m/%d/%Y %H:%M:%S" для преобразования в DateTime

 as.POSIXct(str1, format = "%m/%d/%Y %H:%M:%S")
#[1] "2018-04-16 00:00:00 CDT" "2019-08-30 14:35:00 CDT" "2017-11-15 08:15:10 CST"
  

данные

 str1 <- c("4/16/2018 0:00:00", "8/30/2019 14:35:00", "11/15/2017 8:15:10")
  

Ответ №2:

Я думаю, этого достаточно:

 library(lubridate)
dates = c('4/16/2018 0:00:00', '8/30/2019 14:35:00', '11/15/2017 8:15:10')
dates = mdy_hms(dates)
dates
  

Вывод:

 [1] "2018-04-16 00:00:00 UTC" "2019-08-30 14:35:00 UTC" "2017-11-15 08:15:10 UTC"
  

Ответ №3:

Кажется, это довольно распространенные строки для strptime. Или была другая проблема?

 x <- "4/16/2018 0:00:01"
strptime(x ,"%m/%d/%Y %H:%M:%S")
  

Комментарии:

1. В моем 0 примере не было 4 перед 4/16/2018 .

2. О, да, верно. Я автоматически добавил 0 xD, но все еще работает без 0.