2012-10-12 11 views
5

In un data.frame, ho un timbro di data e ora in forma:Conversione char a data e ora

head(x$time) 
[1] "Thu Oct 11 22:18:02 2012" "Thu Oct 11 22:50:15 2012" "Thu Oct 11 22:54:17 2012" 
[4] "Thu Oct 11 22:43:13 2012" "Thu Oct 11 22:41:18 2012" "Thu Oct 11 22:15:19 2012" 

Ogni volta che provo a convertirlo con as.Date, lubridate, o zoo ottengo NA s o Errori.

Qual è il modo di convertire questa volta in una forma leggibile?

ho provato:

Time<-strptime(x$time,format="&m/%d/%Y %H:$M") 
    x$minute<-parse_date_time(x$time) 
    x$minute<-mdy(x$time) 
    x$minute<-as.Date(x$time,"%m/%d/%Y %H:%M:%S") 
    x$minute<-as.time(x$time) 
    x$minute<-as.POSIXct(x$time,format="%H:%M") 
    x$minute<-minute(x$time) 
+4

Puoi condividere alcuni dei passi provato? Inoltre, si noti che 'as.date' non è uguale a' as.Date'. – A5C1D2H2I1M1N2O1R2T1

+4

Che cosa hai provato? dare un'occhiata a 'strptime' per l'argomento' format' da fornire a 'as.Date' e agli altri. – Justin

risposta

17

cosa si vuole veramente è strptime(). Prova qualcosa di simile:

strptime(x$time, "%a %b %d %H:%M:%S %Y") 

Come esempio delle cose interessanti che si possono fare con strptime(), considerare quanto segue:

thedate <- "I came to your house at 11:45 on January 21, 2012." 
strptime(thedate, "I came to your house at %H:%M on %B %d, %Y.") 
# [1] "2012-01-21 11:45:00"