Berechnung täglich bedeuten in der R
Sagen, ich habe die folgenden matrix:
x1 = 1:288
x2 = matrix(x1,nrow=96,ncol=3)
Gibt es einen einfachen Weg, um den Mittelwert der Zeilen 1:24,25:48,49:72,73:96 für die Spalte 2?
Grundsätzlich habe ich ein Jahr Zeit, die Serie und ich muss Durchschnitt einige Daten alle 24 Stunden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist.
Nehmen wir an, wir haben die Tage :
könnte man leicht tun
Wenn Sie einen dataframe mit einem Datum variabel sind, können Sie diese verwenden. Sie können tun, dass für alle Variablen auf einmal, die Verwendung von Aggregat :
Werfen Sie einen Blick auf die Hilfe-Dateien für diese Funktionen, um mit zu beginnen. Auch eine Suche hier, es gibt durchaus einige andere interessante Antworten auf dieses problem :
PS : Wenn du gehst zu tun eine Menge von timeseries, sollten Sie einen Blick auf die zoo Paket (auf CRAN : http://cran.r-project.org/web/packages/zoo/index.html )
tapply
Methode ist, dass es erstellt einen Vektor (Anzahl der Spalten = Anzahl der Tage). Dieaggregate
- Methode erstellt einen data frame (1 Spalte mit der Anzahl der Zeilen = Anzahl der Tage), die kann praktisch sein, wenn nachträgliche manipulation der Daten erforderlich ist.1) ts. Da dies eine, in regelmäßigen Abständen Zeit-Serie, konvertieren Sie es in ein
ts
Serie und dann in aggregierter Form von der Frequenz 24-Frequenz 1:geben:
2) zoo. Hier ist es mit zoo. Die zoo-Paket kann auch mit unregelmäßigen Abständen-Serie (bei Bedarf Verlängerung). Unten
day.hour
ist die Tag-Nummer (1, 2, 3, 4) plus die Stunde als Bruchteil des Tages, so dassfloor(day.hour)
ist nur die Tag-Nummer:Wenn
zz
ist die Ausgabe vonaggregate
danncoredata(zz)
undtime(zz)
sind die Werte und Zeiten, die jeweils als normale Vektoren.Recht kompakt und sehr schnelle Möglichkeit, dies zu tun ist, neu zu gestalten, den Vektor in eine geeignete matrix, und die Berechnung der Spalte bedeutet.