1) ts. Da dies eine regelmßig beabstandeten Zeitreihe ist, wandelt es in eine Serie ts
und dann Aggregieren von Frequenz zu Frequenz 24 1:
> aggregate(ts(x2[, 2], freq = 24), 1, mean)
geben:
Time Series:
Start = 1
End = 4
Frequency = 1
[1] 108.5 132.5 156.5 180.5
2) Zoo. Hier ist es mit Zoo. Das Zoo-Paket kann auch unregelmäßig beabstandete Serien verarbeiten (wenn wir das verlängern müssten). Unterhalb day.hour
ist die Tag-Nummer (1, 2, 3, 4) sowie die Stunde, als Bruchteil des Tages, so dass floor(day.hour)
nur die Tageszahl ist:
> library(zoo)
> day.hour <- seq(1, length = length(x2[, 2]), by = 1/24)
> z <- zoo(x2[, 2], day.hour)
> aggregate(z, floor, mean)
1 2 3 4
108.5 132.5 156.5 180.5
Wenn zz
die Ausgabe ist dann coredata(zz)
und time(zz)
sind die Werte bzw. Zeiten als gewöhnliche Vektoren.
@SnowFrog Sie liegen falsch. tapply erstellt keinen Datenrahmen. Es erstellt einen Vektor (in diesem Fall). Großer Unterschied. –
Ein Problem mit der 'tapply' Methode ist, dass es einen Vektor erstellt (Anzahl der Spalten = Anzahl der Tage).Die "aggregate" -Methode erstellt einen Datenrahmen (1 Spalte mit Anzahl der Zeilen = Anzahl der Tage), was praktischer sein kann, wenn eine nachfolgende Manipulation der Daten benötigt wird. – SnowFrog