2017-02-11 3 views
0

ich Daten hat, die wie folgt aussieht:Entfernen Datumsteil aus Zeitstempeln in R

timestamp      volume 
1 2013-10-29T00:00:00-05:00 650 
2 2013-10-29T00:15:00-05:00 778 
3 2013-10-29T00:30:00-05:00 683 
4 2013-10-29T00:45:00-05:00 723 

Wie gehe ich über das Datum zu entfernen, (diesen Teil 2013-10-29T), so dass meine Spalte wie folgt aussehen:

Ich habe eine harte Zeit mit lubridate. Vielen Dank!

 timestamp  volume 
1 00:00:00-05:00 650 
2 00:15:00-05:00 778 
3 00:30:00-05:00 683 
4 00:45:00-05:00 723 

Antwort

1

Wir sub verwenden ro das Datum Teil einschließlich der T durch entsprechende Zeichen entfernen, bis die T dh .*T und ersetzen Sie es mit leeren ("")

df1$timestamp <- sub(".*T", "", df1$timestamp) 
df1$timestamp 
#[1] "00:00:00-05:00" "00:15:00-05:00" "00:30:00-05:00" "00:45:00-05:00" 
1

Verwenden Sie einfach die anytime()

R> library(anytime) 
R> pt <- anytime(c("2013-10-29T00:00:00-05:00", "2013-10-29T00:15:00-05:00", 
+     "2013-10-29T00:30:00-05:00", "2013-10-29T00:45:00-05:00")) 
R> pt 
[1] "2013-10-29 00:00:00 CDT" "2013-10-29 00:15:00 CDT" 
[3] "2013-10-29 00:30:00 CDT" "2013-10-29 00:45:00 CDT" 
R> format(pt, "%H:%M:%S") 
[1] "00:00:00" "00:15:00" "00:30:00" "00:45:00" 
R> 

Wenn Sie den Offset hinzufügen möchten, können Sie dies tun der Format-String:

R> format(pt, "%H:%M:%S-05:00") 
[1] "00:00:00-05:00" "00:15:00-05:00" "00:30:00-05:00" "00:45:00-05:00" 
R> 

Im Allgemeinen ich stronly Abraten Daten und Zeiten über reguläre Ausdrücke zu behandeln. Sie sind im Wesentlichen immer besser dran mit der starken Eingabe von expliziten Typen. Es gibt einen Grund, warum sie existieren.

Verwandte Themen