Fastest way to parse a date-time string to class Date
32,761
Note that as.Date
will ignore junk after the date so this takes less than 10 seconds on my not particularly fast laptop:
xx <- rep("10/17/2017 12:00:00 AM", 5000000) # test input
system.time(as.Date(xx, "%m/%d/%Y"))
## user system elapsed
## 9.57 0.20 9.82
Author by
phil_t
Updated on March 12, 2021Comments
-
phil_t about 3 years
I have a column with dates as character in the format
10/17/2017 12:00:00 AM
. I want parse the string and keep only the date part as classDate
, i.e.2017-10-17
. I am using -df$ReportDate = as.Date(df$ReportDate, format = "%m/%d/%Y %I:%M:%S %p") df$ReportDate = as.Date(format(df$ReportDate, "%Y-%m-%d"))
this works, but the dataframe has over 5 million rows so this takes close to two mins.
user system elapsed 104.73 0.55 105.46
Is there a faster and more efficient way to do this?