5.2 Convert String to Date

20220523

The lubridate (Spinu, Grolemund, and Wickham 2023) package is the go to package for converting strings that represent a date into the date and time formats for computing with dates. A number of support functions are provided to perform the conversions quickly, including lubridate::ymd()

dt <- ymd("20220108")

Let’s have a look at the value:

dt
## [1] "2022-01-08"

Often we will want to do this in wrangling a dataset as part of a dplyr::mutate() operation:

"summary.csv" %>%
  read_csv(show_col_types=FALSE) %>%
  mutate(date=ymd(date)) %>%
  ...

The generic operation to convert a string to a date, where the string might be in the format 20220204_121556 (that is year, month, day, then hour, minute seconds) is lubridate::parse_date_time():

ds %>%
  mutate(timestamp=parse_date_time(timestamp,
                                   "Ymd_HMS",
                                   tz="Australia/Canberra"))

Notice we’ve also included a time zone for the supplied timestamp with the tz= parameter.

References

Spinu, Vitalie, Garrett Grolemund, and Hadley Wickham. 2023. Lubridate: Make Dealing with Dates a Little Easier. https://lubridate.tidyverse.org.


Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0