невозможность преобразовать два разных формата даты в переменной datetimestamp в один стандартный формат гггг-дд-мм с помощью ymd () - PullRequest
0 голосов
/ 06 августа 2020

У меня есть набор данных, в котором одна из переменных является столбцом datatimestamp и содержит одни даты в одном формате, а другие - в другом.

Один из таких примеров показан ниже (при выполнении по запросу на R):

 > df$InDates 
 

печатает

   "12-01-2010 14:32" ....  "3/25/2011 8:41" 

Теперь, если я пытаюсь преобразовать их в один единственный формат с помощью lubridate, я получаю преобразование некоторых, но другие становятся NA:

   >  library(lubridate)

   >  df$InDate2 <- ymd(df$InDate)

   >  df$InDate2

     "12-01-2010" ....  "NA" 

Не уверен, как преобразовать все эти даты в один тип - ГГГГ-ММ-ДД

1 Ответ

1 голос
/ 06 августа 2020

Можно попробовать с этим. Он пытается проанализировать как дату (с as_date) все строки, которые он может преобразовать, и оставляет как NA остальные. Затем вы заполняете эти NA (coealesce) другим форматом.

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

library(lubridate)
library(dplyr)
dates <- c("12-01-2010 14:32", "3/25/2011 8:41")

coalesce(as_date(dates, format = "%d-%m-%Y %H:%M"), 
         as_date(dates, format = "%m/%d/%Y %H:%M"))

# [1] "2010-01-12" "2011-03-25"
...