Як розрахувати значення зсуву в r (з прикладами)


Ви можете використовувати функцію lag() із пакета dplyr у R для обчислення значень затримки.

Ця функція використовує такий базовий синтаксис:

зміщення (x, n=1, …)

золото:

  • x : вектор значень
  • n : кількість позицій для затримки

У наступному прикладі показано, як використовувати цю функцію для обчислення зміщених значень на практиці.

Приклад: обчислення зміщених значень у R

Припустімо, що ми маємо наступний кадр даних у R, який показує кількість продажів, здійснених магазином протягом 10 днів поспіль:

 #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

Ми можемо використати функцію lag() із пакета dplyr, щоб створити стовпець lag, який відображає продажі за попередній день для кожного рядка:

 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

Ось як інтерпретувати результат:

  • Першим значенням у стовпці зміщення є NA , оскільки в стовпці sales немає попереднього значення.
  • Друге значення в стовпці зміщення дорівнює 18 , оскільки це попереднє значення в стовпці продажів.
  • Третє значення в стовпці зміщення дорівнює 10 , оскільки це попереднє значення в стовпці продажів.

І так далі.

Ми також можемо змінити значення аргументу n у функції lag() , щоб обчислити значення лагу для іншої кількості попередніх позицій:

 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

Примітка . Щоб створити стовпець лід, використовуйте функцію lead() із пакета dplyr замість функції lag() .

Додаткові ресурси

У наступних посібниках пояснюється, як використовувати інші поширені функції в R:

Як використовувати функцію n() у dplyr
Як використовувати функцію cross() у dplyr
Як використовувати функцію relocate() у dplyr
Як використовувати функцію slice() у dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *