So berechnen sie einen gleitenden durchschnitt nach gruppen in r
Bei der Zeitreihenanalyse stellt ein gleitender Durchschnitt den Durchschnittswert mehrerer vorangegangener Perioden dar.
Sie können die folgende grundlegende Syntax verwenden, um einen gleitenden Gruppendurchschnitt in R zu berechnen:
library (dplyr) library (zoo) #calculate moving average by group df %>% group_by(variable1) mutate(moving_avg = rollmean(variable2, k= 3 , fill=NA, align=' right '))
In diesem speziellen Beispiel wird ein gleitender 3-Perioden-Durchschnitt von Variable2 berechnet, gruppiert nach Variable1 .
Dieser Code verwendet die Funktion group_by() aus dem Paket dplyr und die Funktion rollmean() aus dem Paket zoo .
Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.
Beispiel: Berechnen Sie den gleitenden Durchschnitt nach Gruppe in R
Angenommen, wir haben den folgenden Datenrahmen in R, der die Verkäufe eines Produkts an aufeinanderfolgenden Tagen in zwei verschiedenen Geschäften zeigt:
#create data frame df <- data. frame (store=rep(c(' A ', ' B '), each= 7 ), sales=c(4, 4, 3, 5, 6, 5, 7, 4, 8, 7, 2, 5, 4, 6)) #view data frame df blind sales 1 to 4 2 to 4 3 to 3 4 to 5 5 to 6 6 to 5 7 to 7 8 B 4 9 B 8 10 B 7 11 B 2 12 B 5 13 B 4 14 B 6
Mit der folgenden Syntax können wir eine neue Spalte mit dem Namen „moving_avg3“ erstellen, die den gleitenden durchschnittlichen 3-Tage-Umsatzwert für jedes Geschäft anzeigt:
library (dplyr)
library (zoo)
#calculate 3-day moving average of sales, grouped by store
df %>%
group_by(store) %>%
mutate(moving_avg3 = rollmean(sales, k= 3 , fill=NA, align=' right '))
# A tibble: 14 x 3
# Groups: store[2]
store sales moving_avg3
1 A 4 NA
2 A 4 NA
3 to 3 3.67
4 to 5 4
5 to 6 4.67
6 to 5 5.33
7 to 7 6
8 B 4 NA
9 B 8 NA
10 B 7 6.33
11 B 2 5.67
12 B 5 4.67
13 B 4 3.67
14 B 6 5
Hinweis : Der Wert von k in der Funktion rollmean() steuert die Anzahl der vorherigen Perioden, die zur Berechnung des gleitenden Durchschnitts verwendet werden.
Die Spalte „moving_avg3“ zeigt den gleitenden durchschnittlichen Verkaufswert für die letzten drei Zeiträume an.
Der gleitende Durchschnitt der Verkäufe in den ersten drei Tagen für Geschäft A wird beispielsweise wie folgt berechnet:
Gleitender 3-Tage-Durchschnitt = (4 + 4 + 3) / 3 = 3,67
Der gleitende Durchschnitt der Verkäufe in den nächsten drei Tagen für Filiale A wird wie folgt berechnet:
3-tägiger gleitender Durchschnitt = (4 + 3 + 5) / 3 = 4
Und so weiter.
Beachten Sie, dass die ersten beiden gleitenden Durchschnittswerte für jedes Geschäft NA sind, da es nicht genügend vorherige Perioden gab, die für den gleitenden Durchschnitt verwendet werden konnten.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
So zeichnen Sie mehrere Spalten in R
So mitteln Sie den Durchschnitt über Spalten in R
So berechnen Sie den Mittelwert pro Gruppe in R