Путь Base R будет
transform(df,
End.Date.Time = as.POSIXct(End.Date.Time, format = "%d/%m/%Y %H:%M"),
Start.Date.Time = as.POSIXct(as.character(Start.Date.Time), format = "%Y%m%d"))
# End.Date.Time Start.Date.Time
#1 2018-05-01 12:14:00 2017-11-25
#2 2018-05-01 12:14:00 2017-11-25
#3 2018-05-01 12:14:00 2017-11-25
#4 2017-05-30 22:47:00 2017-05-02
#5 2017-05-30 22:47:00 2017-05-02
#6 2017-05-30 22:47:00 2017-05-02
Или, если вы хотите, чтобы оба столбца были датами, вы могли бы сделать
transform(df,
End.Date.Time = as.Date(as.POSIXct(End.Date.Time, format = "%d/%m/%Y %H:%M")),
Start.Date.Time = as.Date(as.character(Start.Date.Time), format = "%Y%m%d"))
С lubridate
мы можем использоватьфункции dmy_hm
и ymd
для преобразования
library(dplyr)
library(lubridate)
df %>%
mutate(End.Date.Time = dmy_hm(End.Date.Time),
Start.Date.Time = as.POSIXct(ymd(Start.Date.Time)))
данные
df <- structure(list(End.Date.Time = structure(c(1L, 1L, 1L, 2L, 2L,
2L), .Label = c("1/5/2018 12:14", "30/5/2017 22:47"), class = "factor"),
Start.Date.Time = c(20171125L, 20171125L, 20171125L, 20170502L,
20170502L, 20170502L)), class = "data.frame", row.names = c(NA, -6L))