Comment calculer les valeurs décalées dans R (avec exemples)



Vous pouvez utiliser la fonction lag() du package dplyr dans R pour calculer les valeurs décalées.

Cette fonction utilise la syntaxe de base suivante :

décalage(x, n=1, …)

où:

  • x : vecteur de valeurs
  • n : nombre de positions à retarder

L’exemple suivant montre comment utiliser cette fonction pour calculer des valeurs décalées dans la pratique.

Exemple : calcul de valeurs décalées dans R

Supposons que nous ayons le bloc de données suivant dans R qui montre le nombre de ventes réalisées par un magasin sur 10 jours consécutifs :

#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

Nous pouvons utiliser la fonction lag() du package dplyr pour créer une colonne lag qui affiche les ventes de la veille pour chaque ligne :

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

Voici comment interpréter le résultat :

  • La première valeur de la colonne décalage est NA puisqu’il n’y a pas de valeur antérieure dans la colonne ventes.
  • La deuxième valeur de la colonne de décalage est 18 puisqu’il s’agit de la valeur précédente dans la colonne des ventes.
  • La troisième valeur de la colonne de décalage est 10 puisqu’il s’agit de la valeur précédente dans la colonne des ventes.

Et ainsi de suite.

Nous pouvons également modifier la valeur de l’argument n dans la fonction lag() pour calculer une valeur décalée pour un nombre différent de positions précédentes :

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

Remarque : Pour créer une colonne principale, utilisez la fonction lead() du package dplyr au lieu de la fonction lag() .

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction n() dans dplyr
Comment utiliser la fonction across() dans dplyr
Comment utiliser la fonction relocate() dans dplyr
Comment utiliser la fonction slice() dans dplyr

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *