Comment calculer la différence entre les lignes dans R



Vous pouvez utiliser la fonction diff() pour calculer la différence entre les lignes d’un bloc de données dans R :

#find difference between rows in every column of data frame
diff(as.matrix(df))

#find difference between rows of specific column
diff(df$column_name)

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : Trouver la différence entre les lignes de chaque colonne

Le code suivant montre comment calculer la différence entre les lignes de chaque colonne d’un bloc de données :

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(7, 8, 8, 12, 10, 9, 13, 16, 11, 7))

#view data frame
df

   day sales
1    1     7
2    2     8
3    3     8
4    4    12
5    5    10
6    6     9
7    7    13
8    8    16
9    9    11
10  10     7

#calculate difference between rows for each column
diff(as.matrix(df))

      day sales
 [1,]   1     1
 [2,]   1     0
 [3,]   1     4
 [4,]   1    -2
 [5,]   1    -1
 [6,]   1     4
 [7,]   1     3
 [8,]   1    -5
 [9,]   1    -4

Exemple 2 : Trouver la différence entre les lignes d’une colonne spécifique

Le code suivant montre comment calculer la différence entre les lignes d’une colonne spécifique dans un bloc de données :

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(7, 8, 8, 12, 10, 9, 13, 16, 11, 7))

#calculate difference between rows in 'sales' column
diff(df$sales)

[1]  1  0  4 -2 -1  4  3 -5 -4

Exemple 3 : rechercher la différence entre les lignes et ajouter une nouvelle colonne

Le code suivant montre comment calculer la différence entre les lignes d’une colonne spécifique dans un bloc de données, puis ajouter ces différences en tant que nouvelle colonne à la fin du bloc de données :

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(7, 8, 8, 12, 10, 9, 13, 16, 11, 7))

#calculate difference between rows in 'sales' column
sales_diff <- diff(df$sales)

#append NA to beginning of differences vector
sales_diff <- c(NA, sales_diff)

#append differences vector as new column
df$sales_diff <- sales_diff

#view updated data frame
df

   day sales sales_diff
1    1     7         NA
2    2     8          1
3    3     8          0
4    4    12          4
5    5    10         -2
6    6     9         -1
7    7    13          4
8    8    16          3
9    9    11         -5
10  10     7         -4

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions de ligne courantes dans R :

Comment utiliser la fonction colSums() dans R
Comment utiliser la fonction rowSums() dans R
Comment utiliser la fonction nrow() dans R

Ajouter un commentaire

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