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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert