Jak obliczyć wartości przesunięcia w r (z przykładami)


Możesz użyć funkcji lag() z pakietu dplyr w R, aby obliczyć wartości opóźnienia.

Ta funkcja wykorzystuje następującą podstawową składnię:

przesunięcie (x, n=1, …)

Złoto:

  • x : wektor wartości
  • n : liczba pozycji do opóźnienia

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję do obliczenia przesuniętych wartości.

Przykład: Obliczanie przesuniętych wartości w R

Załóżmy, że mamy następującą ramkę danych w R, która pokazuje liczbę sprzedaży dokonanych przez sklep w ciągu 10 kolejnych dni:

 #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

Możemy użyć funkcji lag() z pakietu dplyr, aby utworzyć kolumnę opóźnienia, która wyświetla sprzedaż z poprzedniego dnia dla każdego wiersza:

 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

Oto jak zinterpretować wynik:

  • Pierwsza wartość w kolumnie offsetu to NA , ponieważ w kolumnie sprzedaży nie ma wcześniejszej wartości.
  • Druga wartość w kolumnie offset to 18 , ponieważ jest to poprzednia wartość w kolumnie sprzedaży.
  • Trzecia wartość w kolumnie przesunięcia to 10 , ponieważ jest to poprzednia wartość w kolumnie sprzedaży.

I tak dalej.

Możemy także zmienić wartość argumentu n w funkcji lag(), aby obliczyć wartość opóźnienia dla innej liczby poprzednich pozycji:

 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

Uwaga : Aby utworzyć kolumnę wiodącą, użyj funkcji lead() z pakietu dplyr zamiast funkcji lag() .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak korzystać z innych typowych funkcji w R:

Jak korzystać z funkcji n() w dplyr
Jak używać funkcjicross() w dplyr
Jak korzystać z funkcji relocate() w dplyr
Jak korzystać z funkcji plasterka() w dplyr

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *