2012-10-12 17 views
5

In einem data.frame habe ich ein Datum Zeitstempel in der Form:konvertieren char Zeit bisher

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" 

Jedesmal, wenn ich versuche, es zu konvertieren mit as.Date, lubridate oder Zoo ich NA s oder Fehler.

Wie kann man diese Zeit in eine lesbare Form umwandeln?

Ich habe versucht:

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

Können Sie einige der Schritte teilen Sie versucht? Beachten Sie auch, dass "as.date" nicht das gleiche wie 'as.Date' ist. – A5C1D2H2I1M1N2O1R2T1

+4

Was hast du probiert? Betrachten Sie 'strptime' für das' format'-Argument, das an 'as.Date' und die anderen übergeben werden soll. – Justin

Antwort

17

Was Sie wirklich ist strptime() wollen. Versuchen Sie so etwas wie:

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

Als Beispiel für die interessanten Dinge, die Sie mit strptime() tun können, ist folgendes zu beachten:

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"