spaltenweise Berechnung (for-Schleife, Indizierung oder apply oder andere Idee?)
Verfasst: So Aug 12, 2018 9:20 am
Hallo zusammen,
ich hänge gerade an folgender Kleinigkeit und bin sicher, es gibt ne relativ einfache Lösung, auf die ich aber gerade nicht komme.
Meine Daten sind in einer Tabelle, in der ich einen Spaltenname habe, dann habe ich eine Zeitreihe in 15-Minutenintervallen in Spalten für ein Jahr. Also Variablen (Standorte) in Spalten, Werte in Zeilen in 15 Minuten-Schritten. Vorne dran habe ich eine eine "Stunden"-Variable erstellt und drangeheftet:
Ich möchte daraus stündliche Werte basteln, also immer 4 Werte zusammenfassen, was ich für eine Spalte mit dem dplyr-Paket und folgenden Zeilen gelöst habe:
Damit bekomme ich den Vektor mit den Stundenwerten für eine Spalte. (Soweit, so gut!)
Theoretisch könnte ich das natürlich jetzt händisch so weiterführen und mit allem mal durchgehen, eleganter (und schneller... ich habe viele Spalten) wäre aber, das nun "automatisch" für alle Spalten zu machen. Ich habe ein bisschen herumprobiert mit einer funktion, for-Schleifen etc., aber ich kriege es nicht hin. (Bzw. ich habe auch schon überlegt, aus der Tabelle einen langen Vektor zu machen, das Mittel zu berechnen und wieder zu ner Matrix zusammenzufügen, aber das ist irgendwie ja auch Pfuscherei, gerade mit R muss das doch irgendwie geschickt gehen?)
Danke schonmal für Anregungen und Ideen
ich hänge gerade an folgender Kleinigkeit und bin sicher, es gibt ne relativ einfache Lösung, auf die ich aber gerade nicht komme.
Meine Daten sind in einer Tabelle, in der ich einen Spaltenname habe, dann habe ich eine Zeitreihe in 15-Minutenintervallen in Spalten für ein Jahr. Also Variablen (Standorte) in Spalten, Werte in Zeilen in 15 Minuten-Schritten. Vorne dran habe ich eine eine "Stunden"-Variable erstellt und drangeheftet:
Code: Alles auswählen
stunden <- sort(rep(1:8784,4))
y<- cbind(stunden, x)
Code: Alles auswählen
Ausgabe<- y %>%
group_by(stunden) %>%
summarise(avg = mean(y$spalte2))
Theoretisch könnte ich das natürlich jetzt händisch so weiterführen und mit allem mal durchgehen, eleganter (und schneller... ich habe viele Spalten) wäre aber, das nun "automatisch" für alle Spalten zu machen. Ich habe ein bisschen herumprobiert mit einer funktion, for-Schleifen etc., aber ich kriege es nicht hin. (Bzw. ich habe auch schon überlegt, aus der Tabelle einen langen Vektor zu machen, das Mittel zu berechnen und wieder zu ner Matrix zusammenzufügen, aber das ist irgendwie ja auch Pfuscherei, gerade mit R muss das doch irgendwie geschickt gehen?)
Danke schonmal für Anregungen und Ideen