使用 lubridate 和 dplyr 将多列转换为日期

Convert multiple columns to dates with lubridate and dplyr

我正在寻找一种直接的方法来将数据框中以 'date' 开头的所有变量转换为使用 lubridate::dmy() 的日期(它们目前是 dmy 格式的字符)。

我原以为 mutate_if 或 mutate_each 可以在 dplyr 中完成,但我正在努力弄清楚如何做。

您可以使用mutate_at()

library(dplyr)
library(lubridate)

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

或使用 mutate_if 将所有日期列更改为 dmy。使用 lubridate.

中的 is.Date
df  <- mutate_if(df, is.Date, funs(dmy))