Как рассчитать значения сдвига в 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, чтобы создать столбец задержки, который отображает продажи за предыдущий день для каждой строки:

 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 , поскольку в столбце продаж нет предшествующего значения.
  • Второе значение в столбце смещения — 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
Как использовать функциюthrough() в dplyr
Как использовать функцию relocate() в dplyr
Как использовать функцию среза() в dplyr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *