Como calcular valores de deslocamento em r (com exemplos)


Você pode usar a função lag() do pacote dplyr em R para calcular valores de atraso.

Esta função usa a seguinte sintaxe básica:

deslocamento (x, n = 1,…)

Ouro:

  • x : vetor de valores
  • n : número de posições a serem atrasadas

O exemplo a seguir mostra como usar esta função para calcular valores deslocados na prática.

Exemplo: Calculando valores deslocados em R

Suponha que temos o seguinte quadro de dados em R que mostra o número de vendas que uma loja realizou em 10 dias consecutivos:

 #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

Podemos usar a função lag() do pacote dplyr para criar uma coluna de atraso que exibe as vendas do dia anterior para cada linha:

 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

Veja como interpretar o resultado:

  • O primeiro valor na coluna de compensação é NA , pois não há valor anterior na coluna de vendas.
  • O segundo valor na coluna de deslocamento é 18 , pois é o valor anterior na coluna de vendas.
  • O terceiro valor na coluna de deslocamento é 10 , pois é o valor anterior na coluna de vendas.

E assim por diante.

Também podemos alterar o valor do argumento n na função lag() para calcular um valor de atraso para um número diferente de posições anteriores:

 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

Nota : Para criar uma coluna lead, use a função lead() do pacote dplyr em vez da função lag() .

Recursos adicionais

Os tutoriais a seguir explicam como usar outras funções comuns em R:

Como usar a função n() no dplyr
Como usar a função across() no dplyr
Como usar a função relocate() no dplyr
Como usar a função slice() no dplyr

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *