2016-08-02 6 views
0

Ich verwende R, um 365 Tage Daten zu analysieren, die bei über 40.000 Ereignissen gesammelt wurden. Die Ereignisse finden zu verschiedenen Tageszeiten statt. Ich möchte die Ereignisse aggregieren und Mittel in verschiedenen Intervallen wie 2, 8, 12 Stunden oder täglich berechnen. Ich habe gesehen, CUT und AGGREGATE verwendet, aber es scheint nicht die Intervalle wie erforderlich bereitzustellen.Zeit/Datum-Daten in verschiedenen Intervallen schneiden

Alle Vorschläge würden sehr geschätzt werden.

Antwort

0

Um die CUT Funktion zu verwenden, müssen Sie zuerst die Haltepunkte definieren. Verwenden Sie hierzu die Funktion seq.

mydateseq<-seq(as.POSIXct("2016-01-01"), by="2 hour", length.out = 20) 

Es gibt Optionen, um den Start zu/Stop-Punkte oder die Anzahl der Elemente. In diesem Beispiel werden die Pausen alle 2 Stunden eingestellt, aber dies ist einstellbar. Weitere Informationen finden Sie unter seq.POSIXt. Achten Sie darauf, den Start/Stopp so einzustellen, dass der interessierende Datumsbereich vollständig erfasst wird. Sobald die Datensequenz definiert ist, kann diese an die Funktion cut übergeben werden, um die Funktion group_by im Paket dplyr zu aggregieren oder zu verwenden.

+0

Danke Dave, das hat super funktioniert. Ich brauchte einen Moment um zu verstehen, wie alles zusammenpasst, aber es hat funktioniert. Ich testete es an 12 Stunden Gruppierungen und jetzt kann ich zu den 2-Stunden-Sets tweeken. Danke ... 'code') ### Gruppe basierend auf 12 Stundensätzen mydateseq <-seq (as.POSIXct (" 2014-12-31 "), von =" 12 hour ", length.out = 750) raddata1 $ group <- cut (raddata1 $ a, mydateseq, rechts = FALSE) –