3

I'm looking for a straightforward way to convert all of the variables in a data frame which begin with 'date' to dates using lubridate::dmy() (they are currently characters with the dmy format).

I had thought there would be done with mutate_if or mutate_each in dplyr but I am struggling to figure out how.

zx8754
  • 52,746
  • 12
  • 114
  • 209
Steve Reno
  • 1,304
  • 3
  • 14
  • 21

1 Answers1

14

You can use mutate_at()

library(dplyr)
library(lubridate)

df <- mutate_at(df, vars(starts_with("date")), funs(dmy))

or use mutate_if to mutate all date columns to dmy. Using is.Date from lubridate.

df  <- mutate_if(df, is.Date, funs(dmy))
Jake Kaupp
  • 7,892
  • 2
  • 26
  • 36