So berechnen sie den offset pro gruppe mit dplyr
Sie können die folgende Syntax verwenden, um gruppenverschobene Werte in R mithilfe des dplyr- Pakets zu berechnen:
df %>%
group_by(var1) %>%
mutate(lag1_value = lag(var2, n= 1 , order_by=var1))
Hinweis : Die Funktion mutate() fügt dem Datenrahmen, der die verzögerten Werte enthält, eine neue Variable hinzu.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Berechnen Sie verschobene Werte nach Gruppe mit dplyr
Angenommen, wir haben den folgenden Datenrahmen in R, der die Verkäufe zweier verschiedener Geschäfte an verschiedenen Tagen zeigt:
#create data frame df <- data. frame (store=c('A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'), sales=c(7, 12, 10, 9, 9, 11, 18, 23)) #view data frame df blind sales 1 to 7 2 B 12 3 to 10 4 B 9 5 to 9 6 B 11 7 to 18 8 B 23
Mit dem folgenden Code können wir eine neue Spalte erstellen, die die verzögerten Verkaufswerte für jedes Geschäft anzeigt:
library (dplyr) #calculate lagged sales by group df %>% group_by(store) %>% mutate(lag1_sales = lag(sales, n= 1 , order_by=store)) # A tibble: 8 x 3 # Groups: store[2] store sales lag1_sales 1 to 7 NA 2 B 12 NA 3 to 10 7 4 B 9 12 5 to 9 10 6 B 11 9 7 to 18 9 8 B 23 11
So interpretieren Sie das Ergebnis:
- Der erste Wert von lag1_sales ist NA , da es keinen vorherigen Wert für die Verkäufe von Geschäft A gibt.
- Der zweite Wert von lag1_sales ist NA , da es keinen vorherigen Wert für die Verkäufe von Geschäft B gibt.
- Der dritte Wert von lag1_sales ist 7 , da es sich um den vorherigen Verkaufswert von Geschäft A handelt.
- Der vierte Wert von lag1_sales ist 12 , da es sich um den vorherigen Verkaufswert von Geschäft B handelt.
Und so weiter.
Beachten Sie, dass Sie die Anzahl der verwendeten Verzögerungen auch ändern können, indem Sie den Wert von n in der Funktion lag() ändern.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Berechnungen in R durchführen:
So berechnen Sie eine laufende Summe mit dplyr
So berechnen Sie die Summe nach Gruppe in R
So berechnen Sie den Mittelwert pro Gruppe in R