Если нужно сделать это трудным путем:
text<-"10/4/2018 19:21"
res<-strsplit(text," ")
df$Date<-res[[1]][1]
df$Time<-res[[1]][2]
#install.packages("lubridate")
df$Date<-lubridate::mdy(df$Date)
df$Time<-lubridate::hm(df$Time)
Вы можете получить время и дату без использования каких-либо пакетов:
df$Time<-format(strptime(res[[1]][2],"%H:%M",tz=""),"%H:%M") #cleaner output
df$Date<- as.Date(res[[1]][1],"%m/%d/%Y")
Результат с помощью lubridate
:
month item sales Date Time
1 1 A 10 2018-10-04 19H 21M 0S
2 2 b 20 2018-10-04 19H 21M 0S
3 2 c 5 2018-10-04 19H 21M 0S
4 3 a 3 2018-10-04 19H 21M 0S
Данные
df<-structure(list(month = c(1, 2, 2, 3), item = structure(c(2L,
3L, 4L, 1L), .Label = c("a", "A", "b", "c"), class = "factor"),
Time = new("Period", .Data = c(0, 0, 0, 0), year = c(0, 0,
0, 0), month = c(0, 0, 0, 0), day = c(0, 0, 0, 0), hour = c(19,
19, 19, 19), minute = c(21, 21, 21, 21))), class = "data.frame", row.names = c(NA,
-4L))