Не уверен, что я что-то упустил, но похоже, что у вас много ненужного кода.Это прекрасно работает
library(lubridate)
df[cols] <- lapply(df[cols], parse_date_time, c("mdy", "dmy", "dmY"))
df
# a b
#1 1988-12-01 1988-12-01
#2 1999-10-17 <NA>
Более того, все даты в df
, кажется, следуют за тем же format
, поэтому as.Date
тоже работает отлично.
df[] <- lapply(df, as.Date, "%m/%d/%Y")
данные
df <- data.frame(a = c("12/01/1988","10/17/1999"),b = ("12/01/1988",NA))