2016-04-26 18 views
0

Ich habe ein kleines Trainingssatz von Daten, die ich zu analysieren beginne. Der Datensatz besteht aus Krankenhausverfahrenscodes, Werten für diese Prozedur und einem Datums-/Zeitstempel. Ich versuche, die Zeitstempel in "Tageszeit" -Kategorien aufzuteilen, da einige der Verfahrenswerte je nach Morgen/Abend variieren.R: Cut-Funktion mit POSIXct Datumsangaben: Erstellen bestimmter Kategorien basierend auf der Tageszeit

Ich habe versucht mit cut(), aber ich kann nicht herausfinden, wie bestimmte Zeitintervalle für die Kategorien eingeben (Bsp. 00:00 bis 06:00 = "Fasten", 06: 01-10:00 Uhr) = "Morgenessen", ...).

Jede Hilfe oder Richtung würde sehr geschätzt werden.

+0

ein Codebeispiel für das, was Sie – Austin

+0

'x_cut

Antwort

1

Sie können die Stunde aus dem Datum mit hour im Paket lubridate extrahieren.

> library(lubridate) 
> now() 
[1] "2016-04-26 23:21:56 CEST" 
> dt <- now() 
> hour(dt) 
[1] 23 
> cut(hour(dt), breaks = c(0, 6, 12, 18, 24), include.lowest = TRUE) 
[1] (18,24] 
Levels: [0,6] (6,12] (12,18] (18,24]> 
+0

Keine Notwendigkeit für ein Paket für eine einfache Aufgabe wie folgt - 'Schnitt (as.integer (Format (x,"% H ")), Seq (0,24,6), include.lowest = TRUE)' – thelatemail

+0

Sicher, keine Notwendigkeit, lubridate zu verwenden, aber ich denke, dass es den Code einfacher zu verstehen macht und es vermeidet den 'as.integer' Schritt –

+0

Danke Ihnen beide. Ich bin ein neuer R-Benutzer und das gab mir Ärger ... –