Seite 1 von 1

Zeitintervall

Verfasst: Fr Jun 03, 2022 6:01 pm
von Psyc_Bi
Hallo,

ich rechne zurzeit Statistik für me meine BA-Abschlussarbeit und bräuchte dazu Hilfe, wie ich Tageszeitintervalle erstellen kann.

In der Erhebung wurde mit Aktigraphen gemessen, wo Daten zur physischen Aktivität erfasst wurden. Ich hab aber nach tagelangem googeln nichts gefunden, wie ich weitergehen soll.
Am Bild sieht man, wie Zeit erfasst wurde. Ich habe drei Bedingungen: vor 14:00, dann 14:00 - 22:00 und nach 22:00.
Wie kann ich diese Zeiträume definieren und in die Analyse aufnehmen?

Re: Zeitintervall

Verfasst: Fr Jun 03, 2022 8:08 pm
von bigben
Hallo,

kannst Du anstelle eines Screenshots ein str() von Deinen Daten posten? So ist unklar, ob das Strings oder Datum und Uhrzeit sind.
Noch besser wäre ein reproduzierbares Beispiel.

lubridate ist ein tolles package für Satumsrechnung und einen Thread zum Umcodieren habe ich in den FAQ eingestellt.

LG, Bernhard

Re: Zeitintervall

Verfasst: Mo Jun 06, 2022 12:33 pm
von Psyc_Bi
Hallo Bernhard,

ich habe einen Teildatensatz in csv Format erstellt. Ich hoffe, es ist möglich damit auch zu arbeiten.

Lubridate habe ich mir schon angeschaut, bin aber, um ehrlich zu sein völlig überfordert damit, da ich mit sowas noch nie gearbeitet habe und die User Manual ist für mein Verständnis nicht eindeutig genug oder mein Englisch ist in diesem Sinne weitgehend nicht ausreichend und die Feinheiten der unterschiedlichen Befehlen zu verstehen.

LG, John

Re: Zeitintervall

Verfasst: Mo Jun 06, 2022 2:24 pm
von bigben
Hallo John,

Deine Daten lassen sich wie folgt einlesen:

Code: Alles auswählen

tt <- read.csv2("http://forum.r-statistik.de/download/file.php?id=1755")
str(tt)
head(tt$Time)
Die Spalte tt$Time scheint die Anzahl der Sekunden seit Mitternacht zu enthalten und bietet sich daher für die von Dir angestrebte Unterteilung an:
Ich habe drei Bedingungen: vor 14:00, dann 14:00 - 22:00 und nach 22:00
Gruppe eins, alles bis 14 Uhr, sind damit alle die Zeilen, in denen Time kleiner als 14*60^2 = 50400 ist. 22:00 Uhr entspricht einem Sekundenwert von 22*60^2 = 79200. Um an diesen Grenzwerten eine Gruppierungsvariable zu erstellen hat R die Funktion cut. Wir erstellen eine neue Spalte TimeGroup wie folgt:

Code: Alles auswählen

tt$TimeGroup <- cut(tt$Time, breaks = c(0, 50400, 79200, 24*60^2), 
                    labels = c("bis1400", "bis2200", "bisMitternacht"), 
                    ordered_result = TRUE)
 
str(tt$TimeGroup)  #neue Spalte ist erstellt worden
table(tt$TimeGroup, tt$Gender)  # Beispiel für eine Auswertung mit Einbezug Dieser Variablen.
Und diese neue Spalte kannst Du jetzt für alle möglichen Auswetungen als Gruppenvariable verwenden.

LG,
Bernhard

Re: Zeitintervall

Verfasst: Mo Jun 06, 2022 3:19 pm
von Psyc_Bi
Bernhard,

ich bedanke mich bei dir!

Allerdings hab ich grade gesehen, dass bei der Spalte Time die Zeit irgendiwie konvertiert wurde.
In dem Originaldatei ist es h:mm:ss und in dem von mir hochgeladenen Datensatz sind es vorlaufende Sekunden.
Könntest du bitte bei dieser Variante das noch mal machen?
Ich möchte mich wegen der Unannehmlichkeit entschuldigen!

VG

Re: Zeitintervall

Verfasst: Mo Jun 06, 2022 4:04 pm
von bigben
Hallo Psyc_Bi,

wenn Du einen einfachen Weg kennst, die Konvertierung so vorzunehmen, wie sie die versehentlich passiert ist, dann nimm den doch und rechne damit weiter.

Ansonsten wäre die Funktion hms in lubridate das richtige, um Deine Werte in ein geeignetes Datenformat zu pressen:

Code: Alles auswählen

library(lubridate)
uhrzeit <- hms(c("07:40:50", "10:56:18", "13:34:00", "15:23:13", 
                 "17:20:00", "18:54:36"))
print(uhrzeit)
Für Deinen konkreten Anwendungsfall vielleicht so:

Code: Alles auswählen

tt <- read.csv2("http://forum.r-statistik.de/download/file.php?id=1757")

library(lubridate)
tt$uhrzeit <- hms(tt$Time, quiet = TRUE)
tt$sekunden <- as.numeric(tt$uhrzeit)
tt$sekunden
Und von da dann wieder mit cut weiter.

LG,
Bernhard

Re: Zeitintervall

Verfasst: Mo Jun 06, 2022 5:02 pm
von Psyc_Bi
Jetzt, hat es alles funktioniert.
Wunderbar!
Vielen Dank noch mal!
Bist du mal in Bielefeld unterwegs, musst du ein Bier auf meine Kosten trinken :D

Re: Zeitintervall

Verfasst: Mo Jun 06, 2022 6:01 pm
von bigben
In wo? Gibt's doch garnich :D