Ich versuche, ein Roll Mittelwert Wert von mehreren Dimensionen in R. Etwas gruppierte zu berechnen ich in SQL in der folgenden Art und Weise tun würde:R - ave rollapply Fehler: k <= n ist nicht wahr
AVG(value) OVER
(PARTITION BY dim1, dim2 ORDER BY date
RANGE BETWEEN 5 PRECEDING AND CURRENT ROW)
die folgende scheint zu funktionieren, wenn ich nur ein paar Dimensionen auswählen:
s <- ave(df$value,
list(df$dim1, df$dim2),
FUN= function(x) rollapply(x, 5, mean, align='right'))
aber gibt die folgende Fehlermeldung, wenn ich den vollen Satz von Dimensionen wählen:
Error: k <= n is not TRUE
Ich bekomme den gleichen Fehler, wenn ich laufen:
rollapply(c(1:2), 3, mean, align='right')
also denke ich, das Problem ist, dass einige Kombinationen von Dimensionen nicht genügend Werte Mittelwert zu berechnen.
Wie könnte ich es überwinden? Mir geht es gut, dass ich eine NA für diese Kombinationen habe. Jede Hilfe wäre sehr willkommen ..
Nun, in Ihrem letzten Beispiel, Sie versuchen, die * letzten drei Werte zu verwenden, bei jeder Iteration * ... aber die Iteration Vektor 'c (1: 2)' hat nur zwei! –
Ja, mir ist bewusst, was das Problem ist, zweites Beispiel soll es nur illustrieren. Die Frage ist, wie kann ich es überwinden und NA bekommen, wenn es zu wenig Elemente gibt, um rollapply zu berechnen, anstatt eine Fehlermeldung zu bekommen. – Adam