Shift-waarden in r berekenen (met voorbeelden)


U kunt de lag()- functie uit het dplyr- pakket in R gebruiken om lag-waarden te berekenen.

Deze functie gebruikt de volgende basissyntaxis:

verschuiving(x, n=1, …)

Goud:

  • x : vector van waarden
  • n : aantal te vertragen posities

Het volgende voorbeeld laat zien hoe u deze functie kunt gebruiken om verschoven waarden in de praktijk te berekenen.

Voorbeeld: Verschoven waarden in R berekenen

Stel dat we het volgende gegevensframe in R hebben dat het aantal verkopen weergeeft dat een winkel gedurende 10 opeenvolgende dagen heeft behaald:

 #create data frame
df <- data. frame (day=1:10,
                 sales=c(18, 10, 14, 13, 19, 24, 25, 29, 15, 18))

#view data frame
df

   day sales
1 1 18
2 2 10
3 3 14
4 4 13
5 5 19
6 6 24
7 7 25
8 8 29
9 9 15
10 10 18

We kunnen de lag() -functie uit het dplyr-pakket gebruiken om een lag-kolom te maken die de verkopen van de vorige dag voor elke rij weergeeft:

 library (dplyr)

#add new column that shows sales for previous day
df$previous_day_sales <- dplyr::lag(df$sales, n= 1 )

#view updated data frame
df

   day sales previous_day_sales
1 1 18 NA
2 2 10 18
3 3 14 10
4 4 13 14
5 5 19 13
6 6 24 19
7 7 25 24
8 8 29 25
9 9 15 29
10 10 18 15

Zo interpreteert u het resultaat:

  • De eerste waarde in de offsetkolom is NA , aangezien er geen eerdere waarde in de verkoopkolom staat.
  • De tweede waarde in de offsetkolom is 18 , aangezien dit de vorige waarde in de verkoopkolom is.
  • De derde waarde in de offsetkolom is 10 , aangezien dit de vorige waarde in de verkoopkolom is.

Enzovoort.

We kunnen ook de waarde van het argument n in de lag() -functie wijzigen om een lag-waarde te berekenen voor een ander aantal eerdere posities:

 library (dplyr)

#add new column that shows sales for two days prior
df$previous_day_sales <- dplyr::lag(df$sales, n= 2 )

#view updated data frame
df

   day sales previous_day_sales
1 1 18 NA
2 2 10 NA
3 3 14 18
4 4 13 10
5 5 19 14
6 6 24 13
7 7 25 19
8 8 29 24
9 9 15 25
10 10 18 29

Opmerking : om een leadkolom te maken, gebruikt u de lead()- functie uit het dplyr-pakket in plaats van de lag()- functie.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:

Hoe de n()-functie in dplyr te gebruiken
Hoe de cross()-functie in dplyr te gebruiken
Hoe de functie move() in dplyr te gebruiken
Hoe de slice()-functie in dplyr te gebruiken

Einen Kommentar hinzufügen

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