Pete T
Pete T

Reputation: 3

Problems with parse_date_time converting a character vector

I have an imported CSV in R which contains a column of dates and times - this is imported into R as character. The format is "30/03/2020 08:59". I want to convert these strings into a format that allows me to work on them. For simplicity I have made a dataframe which has a single column of these dates (854) in this format.

I'm trying to use the parse_date_time function from lubridate.

It works fine when I reference a single value, e.g.

b=parse_date_time(consults_dates[3,1],orders="dmy HM") 

gives b=2020-03-30 09:08:00

However, when I try to perform this on the entire(consults_dates), I get an error, e.g.

c= parse_date_time(consults_dates,orders="dmy HM") gives error:

Warning message: All formats failed to parse. No formats found.

Apologies - if this is blatantly a simple question, day 1 of R after years of Matlab.

Upvotes: 0

Views: 558

Answers (1)

Ronak Shah
Ronak Shah

Reputation: 389145

You need to pass the column to parse_date_time function and not the entire dataframe.

library(lubridate)
consults_dates$colum_name <- parse_date_time(consults_dates$colum_name, "dmy HM")

However, if you have only one format in the column you can use dmy_hm

consults_dates$colum_name <- dmy_hm(consults_dates$colum_name)

In base R, we can use :

consults_dates$colum_name <- as.POSIXct(consults_dates$colum_name, 
                                       format = "%d/%m/%Y %H:%M", tz = "UTC")

Upvotes: 2

Related Questions