Aggregierte Zeitreihen von Woche zu Monat
Davon ausgehen, eine timeseries ts-Frequenz(ts) = 52:
Time Series:
Start = c(2010, 34)
End = c(2013, 25)
Frequency = 52
...
Ich will Aggregat ts, so dass die Frequenz(ts) = 12.
Wenn die neue Frequenz teilt die alte, man kann
aggregate(ts, nfrequency = k, FUN = sum)
Aber wenn die alte Frequenz mod neue Frequenz - > 0 es funktioniert nicht:
> ts <- aggregate(ts, nfrequency = 12, FUN = sum)
Error in aggregate.ts(ts, nfrequency = 12, FUN = sum) :
cannot change frequency from 52 to 12
Ich kann mir vorstellen, um eine Schleife durch die Reihen und bestimmen Sie für jedes Wert, wenn auf hinzufügen, um es vollständig oder ein Teil davon, aber ich bin sicherlich nicht der erste mit dieser Anforderung. So gibt es eine vordefinierte Funktion doin das?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es gibt vordefinierte Funktion zu tun aggregation von Monat oder mehr in der Regel von einem Zeitraum von Zeit.Sie können
xts
- Paket ist sehr praktisch für die Zeit-Serie Manipulationen.Zum Beispiel , können Sie
apply.monthly
:FUN=colSums
für multivariate time series.as.xts(ts(1:4,start=c(1,6), end=c(2,5), frequency=4))
. Sollten Sie eine regelmäßige Zeit, die Serie mit xts-Konstruktor. siehe xts helfen.Als mentioend, wenn es Sie nicht stört, dem laden eines anderen Pakets, empfehle ich, mit der Aggregat-Funktion in zoo oder vergleichbare Funktionen in in - xts. Sie werden wahrscheinlich brauchen diese Pakete sowieso, vor allem, wenn Sie laufen in zerlumpten timeseries Daten. Hier sind Beispiele für die Aggregation zu einer monatlichen timeseries mit zoo gefolgt von xts:
zoo:
xts:
Rein syntaktischen Zucker! Was ist wirklich nett über xts ist, dass Sie insgesamt eine Woche. Jedoch ist es trivial, um neue aggregation-Funktionen, um die zoo Funktion zu.
Cheers,
Adam