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