Hoe de offset per groep te berekenen met behulp van dplyr


U kunt de volgende syntaxis gebruiken om groep-verschoven waarden in R te berekenen met behulp van het dplyr- pakket:

 df %>%
  group_by(var1) %>%
  mutate(lag1_value = lag(var2, n= 1 , order_by=var1))

Opmerking : de functie mute() voegt een nieuwe variabele toe aan het dataframe dat de vertraagde waarden bevat.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Bereken verschoven waarden per groep met behulp van dplyr

Stel dat we het volgende gegevensframe in R hebben dat de verkopen weergeeft die door twee verschillende winkels op verschillende dagen zijn gerealiseerd:

 #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

We kunnen de volgende code gebruiken om een nieuwe kolom te maken die de vertraagde verkoopwaarden voor elke winkel weergeeft:

 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

Zo interpreteert u het resultaat:

  • De eerste waarde van lag1_sales is NA omdat er geen eerdere waarde is voor de verkopen van winkel A.
  • De tweede waarde van lag1_sales is NA omdat er geen eerdere waarde is voor de verkopen van winkel B.
  • De derde waarde van lag1_sales is 7 omdat dit de vorige verkoopwaarde van winkel A is.
  • De vierde waarde van lag1_sales is 12 omdat dit de vorige verkoopwaarde van winkel B is.

Enzovoort.

Merk op dat u ook het aantal gebruikte vertragingen kunt wijzigen door de waarde van n in de lag()- functie te wijzigen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende berekeningen in R kunt uitvoeren:

Hoe u een lopende som kunt berekenen met dplyr
Hoe de som per groep in R te berekenen
Hoe het gemiddelde per groep in R te berekenen

Einen Kommentar hinzufügen

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