Comment trouver la différence de valeur toutes les deux lignes consécutives dans R DataFrame ?

Dans cet article, nous verrons comment trouver la différence de valeur dans toutes les deux lignes consécutives dans DataFrame en langage de programmation R.

Méthode 1 : Utilisation différence() méthode

La méthode diff() dans la base R est utilisée pour trouver la différence entre toutes les paires de lignes consécutives dans la trame de données R. Il renvoie un vecteur de longueur équivalente à la longueur de la colonne d’entrée – 1. Les éléments de la colonne d’entrée sont évalués à partir du dernier élément, où chaque élément est remplacé par l’élément au nième index – élément à (n-1) ème indice. Aucune sortie n’est renvoyée pour le premier élément, car il n’a aucun élément pour induire un décalage en référence. Cette méthode est applicable pour les colonnes de données entières ou numériques elles-mêmes.

Syntaxe:

diff(vec , décalage = 1 )

Paramètre :

vec – Vecteur pour calculer les différences de

lag – (Par défaut : 1 ) La nième valeur précédente pour calculer les différences avec

Exemple:

R

data_frame <- data.frame(col1 = rep(c(1:3), each = 3),

                         col2 = letters[1:3],

                         col3 = c(1,4,1,2,3,2,1,2,2))

 

print ("Original DataFrame")

print (data_frame)

 

print ("Difference in col3 successive values")

diff(data_frame$col3)

Production

[1] "Original DataFrame"
 col1 col2 col3
1    1    a    1
2    1    b    4
3    1    c    1
4    2    a    2
5    2    b    3
6    2    c    2
7    3    a    1
8    3    b    2
9    3    c    2
[1] "Difference in col3 successive values"
[1]  3 -3  1  1 -1 -1  1  0

Méthode 2 : Utilisation du package dplyr

Le package “dply” en langage de programmation R peut être utilisé pour effectuer des modifications ou des améliorations de données. Il fournit une grande variété de fonctions pour produire des opérations de manipulation et d’extraction de données.

La subir une mutation() est utilisée pour la création, la suppression et la mise à jour des colonnes de la trame de données. Il prend comme argument le nouveau nom de colonne et la fonction correspondante à appliquer dessus.

Syntaxe:

mutate ( new-col-name = col-name – lag(col-name))

La méthode lag() du package dplyr est utilisée pour renvoyer la valeur précédente de la colonne spécifiée. Elle renvoie NA s’il n’y a pas de ligne précédente pour cette colonne. Le nom de colonne personnalisé peut être attribué à la colonne de différence. Cette méthode est différente des autres car elle renvoie un sur-ensemble de la trame de données d’origine en sortie.

Exemple:

R

library("dplyr")

 

data_frame <- data.frame(col1 = rep(c(1:3), each = 3),

                         col2 = letters[1:3],

                         col3 = c(1,4,1,2,2,2,1,2,2))

 

print ("Original DataFrame")

print (data_frame)

 

print ("Modified DataFrame")

data_frame %>%  mutate(col3_diff = col3 - lag(col3))

Production

[1] "Original DataFrame" 
  col1 col2 col3 
1    1    a    1 
2    1    b    4 
3    1    c    1 
4    2    a    2 
5    2    b    2 
6    2    c    2 
7    3    a    1 
8    3    b    2 
9    3    c    2 
[1] "Modified DataFrame" 
  col1 col2 col3 col3_diff 
1    1    a    1        NA 
2    1    b    4         3 
3    1    c    1        -3 
4    2    a    2         1 
5    2    b    2         0 
6    2    c    2         0 
7    3    a    1        -1 
8    3    b    2         1 
9    3    c    2         0

Méthode 3 : Utilisation nrow() méthode

Toutes les colonnes peuvent être calculées pour trouver la différence des valeurs dans chaque paire de lignes consécutives de la base de données. La trame de données est accessible à partir de la dernière ligne avec chaque ligne une place avant elle. Et, la valeur est obtenue par la soustraction de la ligne au nième index avec la ligne à (n-1)e indice. Dans le cas où la classe de la colonne dataframe est un caractère, une valeur manquante est renvoyée.

La première ligne est supprimée du dataframe de sortie. Les numéros de ligne commençant par le numéro de ligne 2 sont renvoyés en tant que trame de données de sortie.

Exemple:

R

data_frame <- data.frame(col1 = rep(c(1:3), each = 3),

                         col2 = letters[1:3],

                         col3 = c(1,4,1,2,2,2,1,2,2))

 

print ("Original DataFrame")

print (data_frame)

 

rows <- nrow(data_frame)

 

diff_frame <- data_frame[-1,] - data_frame[-rows,]

 

print ("Modified DataFrame")

print(diff_frame)

Production

[1] "Original DataFrame"
 col1 col2 col3
1    1    a    1
2    1    b    4
3    1    c    1
4    2    a    2
5    2    b    2
6    2    c    2
7    3    a    1
8    3    b    2
9    3    c    2
[1] "Modified DataFrame"
 col1 col2 col3
 2    0   NA    3
 3    0   NA   -3
 4    1   NA    1
 5    0   NA    0
 6    0   NA    0
 7    1   NA   -1
 8    0   NA    1
 9    0   NA    0

Laisser un commentaire

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

Aller en haut