2017-02-18 7 views
1

Ich habe Timestamp-Spalte, Daten in Form mit 2016-01-01 00:41:23Cut Zeitstempel in numerische Schlitze in R

ich diese Daten in 12 Slots jeweils 2 Stunden aus dem gesamten Datensatz konvertiert werden soll. Die Daten sind nicht wichtig, nur die Zeit muss berücksichtigt werden.

00:00:00 - 01:59:59 - slot1 
02:00:00 - 03:59:59 - slot2 
....... 
22:00:00 - 23:59:59 - slot12 

Wie erreiche ich das in R?

x <- c("01:59:59", "03:59:59", "05:59:59", 
    "07:59:59", "09:59:59", "11:59:59", 
    "13:59:59", "15:59:59", "17:59:59", 
    "19:59:59", "21:59:59", "23:59:59") 

cut(pickup_time, breaks = x) 

Above Code gibt Fehler: 'x' muss

+0

Wollen Sie diesen Datenrahmen konvertieren? –

+0

Ich möchte eine Spalte in meinem vorhandenen Dataset zusammen mit der Slotnummer hinzufügen –

Antwort

2

Unter Berücksichtigung Ihren Datenrahmen als df numerisch seine wir cut mit breaks von 2 Stunden verwenden können. Zur Liste von 12 verschiedenen Datenrahmen

df$slotnumber <- cut(strptime(df$x, "%H:%M:%S"), breaks = "2 hours", 
               labels = paste0("slot", 1:12)) 

#  x  slotnumber 
#1 01:59:59  slot1 
#2 03:59:59  slot2 
#3 05:59:59  slot3 
#4 07:59:59  slot4 
#5 09:59:59  slot5 
#6 11:59:59  slot6 
#7 13:59:59  slot7 
#8 15:59:59  slot8 
#9 17:59:59  slot9 
#10 19:59:59  slot10 
#11 21:59:59  slot11 
#12 23:59:59  slot12 

Daten

df <- data.frame(x) 
Verwandte Themen