2016-05-15 7 views
1

Ich habe Zeitreihendaten von der Minute im hh: mm: ss-Bereich gesammelt (08:30:00, 15:00:00). Die Variable I mit zu tun habe, ist eine Art-of Float-Faktor, mit Werten wie folgt aus:Float auf Minuten und Sekunden innerhalb des Zeitbereichs in R?

time.float 
48.13333 
56.66667 
65.93333 
113.33333 
94.60000 

ich die Werte in time.float nehmen will und wandeln sie in hh: mm: ss-Format in der obigen Zeit Angebot.

Ich bin verloren, wie dies zu erreichen ist. Gibt es eine eingebaute Funktion, um einen Zeitwert in einem bestimmten Bereich in R zuzuweisen?

Antwort

5

Verwenden Sie as.difftime, um ein Minutenobjekt zu erstellen, das zum Startpunkt hinzugefügt werden kann. Wie:

out <- as.difftime(dat$time.float, units="mins") + as.POSIXct("08:30:00", format="%H:%M:%S") 

Welche können Sie die Ausgabe in welcher gewünschten Format als Textzeichenfolge:

format(out, "%H:%M:%S") 
#[1] "09:18:07" "09:26:40" "09:35:55" "10:23:19" "10:04:36" 

Wo dat waren:

dat <- structure(list(time.float = c(48.13333, 56.66667, 65.93333, 113.33333, 
94.6)), .Names = "time.float", class = "data.frame", row.names = c(NA, 
-5L)) 
+1

Sehr schöne Lösung ... Ich vermissen, dass ein Teil über bestimmten Zeitraum und Referenzpunkt. – Gopala

+0

Glatt. Vielen Dank!! – blacksite

Verwandte Themen