10 Minuten-Daten auf Stundendaten aggregieren

Analyse von Zeitreihendaten sowie weitere Ökonometrische Modelle.

10 Minuten-Daten auf Stundendaten aggregieren

Beitragvon Pamparampam » So 18. Sep 2016, 23:35

Hallo zusammen,

Ich versuche, mich im R-Dschungel zurechtzufinden - was mir vielfach schon ganz gut gelingt, aber manchmal auch etwas verzweifeln lässt...

Das Problem versuche ich an folgenden Beispieldaten zu erklären:

Mittelwerte:
Code: Alles auswählen
...
2016-05-06 19:00:00      7.5
2016-05-06 19:10:00      7.6
2016-05-06 19:20:00      6.9
2016-05-06 19:30:00      6.8
2016-05-06 19:40:00      6.6
2016-05-06 19:50:00     12.0
2016-05-06 20:00:00     12.6
...


Minima
Code: Alles auswählen
...
2016-05-06 19:00:00      7.2
2016-05-06 19:10:00      7.4
2016-05-06 19:20:00      6.8
2016-05-06 19:30:00      6.5
2016-05-06 19:40:00      6.5
2016-05-06 19:50:00     11.4
2016-05-06 20:00:00     12.3
...


Problem A: Mittelwert berechnen
Das erste Set der Beispieldaten sind Momentanwerte. Ich möchte nun aus diesen 10-Minuten-Daten einen Mittelwert über 1 Stunde rechnen. Beispiel: Für die Stunde von 19:00 bis 20:00 erwarte ich also (7.5+7.6+6.9+6.8+6.6+12.0)/6=7.9 --> hier sind also die Werte von 19:00 bis 19:50 relevant.

Problem B: Minima berechnen

Das zweite Beispieldatenset sind ebenfalls 10-Minutendaten, nun handelt es sich aber über das Minimum über die vorangegangenen 10 Minuten. Auch hier möchte ich das Minimum pro Stunde ausrechnen. Beispiel anhand der Stunde von 19:00 - 20:00: Min(7.4, 6.8, 6.5, 6.5, 11.4, 12.3)=6.5 --> hier sind also die Werte von 19:10 bis 20:00 relevant. Die Werte sind also gegenüber Problemstellung A um 10 Minuten nach hinten verschoben.

Wie lassen sich diese beiden Fragestellungen möglichst elegant lösen? Gibt's hierzu eine Funktion, welche entsprechend parametrisiert werden kann (avg bzw. min sowie Angabe des zu verwendenden Zeitraumes)?

Danke für die Hilfe zur Selbsthilfe im Voraus!

Pamparampam
Pamparampam
 
Beiträge: 2
Registriert: So 18. Sep 2016, 23:09
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: 10 Minuten-Daten auf Stundendaten aggregieren

Beitragvon Zaungast » Mo 19. Sep 2016, 09:08

Eine Problembeschreibung über Beispiele hat so ihre Tücken, ich versuche trotzdem mal, die gewünschte Hilfe zur Selbsthilfe zu geben:

Code: Alles auswählen
library(data.table)

#      Erzeugung von Spieldaten

DT <- data.table(timestamp=seq(as.POSIXct("2016-09-19"), by=("+10 min"), length.out=37),
                 value=round(rnorm(37, mean=10, sd=2), 1))

DT[  , ":="(Zeit.1=format(timestamp, format="%Y-%m-%d %H"),
            Zeit.2=format(timestamp - 60, format="%Y-%m-%d %H"))]

DT[  , list(Mittelwert=mean(value)), by=Zeit.1]
DT[  , list(Minimum=min(value)), by=Zeit.2]
Zaungast
 
Beiträge: 169
Registriert: Sa 21. Mai 2016, 17:15
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: 10 Minuten-Daten auf Stundendaten aggregieren

Beitragvon Pamparampam » Fr 23. Jun 2017, 11:28

Mit ganz viel Verspätung (für die es gar keine Entschuldigung gibt) möchte ich mich für die Hilfe bedanken :oops: ! Ich werde mir die Lösung zu Gemüte führen und mich bei Rückfragen ggf. gerne wieder melden.

Pamparampam
Pamparampam
 
Beiträge: 2
Registriert: So 18. Sep 2016, 23:09
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Zeitreihen und Ökonometrie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron