2009-02-24 7 views
14

Ich arbeite mit einem Umfragedatensatz. Er hat zwei Strings vectors, start und finish, die die Tageszeit angeben, zu der das Interview begonnen bzw. beendet wurde.Was ist die beste Praxis, die Zeit in R zu behandeln?

Sie character Strings sind, die wie folgt aussehen: "9:24 am", "12:35 pm", und so weiter. Ich versuche, die Dauer des Interviews basierend auf diesen beiden zu berechnen. Was ist der beste Weg, dies zu tun?

Ich weiß, dass für Termine, es gibt viele classe s oder function s wie as.date(), as.Date(), chron() oder as.POSIXct(). Also ich suchte nach etwas wie as.time(), konnte es aber nicht finden. Sollte ich nur ein erfundenes Datum anhängen und das Ganze in eine POSIX() Datumszeit class umwandeln, dann difftime()?

Was ist die beste Praxis, um die Zeit in R zu behandeln?

Antwort

15

Sie benötigen hilft strptime() verwenden, um die Zeichenfolge in ein Datum zu konvertieren. Zum Beispiel:

strptime("9:24 am",format="%I:%M %p") 

Dann können Sie Unterschiede nehmen nur durch eine von dem anderen unter:

strptime("9:24 am",format="%I:%M %p")-strptime("12:14 am",format="%I:%M %p") 
Time difference of 9.166667 hours 

Sie können diese speichern und dann eine as.numeric() tun, wenn Sie nur die Nummer wollen, sonst hat man kann die Zeitobjekte weitergeben.

Hoffe, das hilft!

+0

aktualisiert wird mit –

1

Eine Option ist die Verwendung regulärer Ausdrücke. Wenn Sie mit ihnen nicht vertraut sind, werden sie verwendet, um Strings mit Mustern zu analysieren. Ich würde reguläre Ausdrücke erforschen und dann here are the functions in r

hoffen, dass es

Verwandte Themen