Comment comparer trois colonnes dans R (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour comparer les valeurs de trois colonnes dans R :

df$all_matching <- df$A == df$B & df$B == df$C

Cette syntaxe crée une nouvelle colonne appelée all_matching qui renvoie la valeur TRUE si toutes les colonnes ont des valeurs correspondantes, sinon elle renvoie FALSE .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : comparer trois colonnes dans R

Supposons que nous ayons le bloc de données suivant dans R avec trois colonnes :

#create data frame
df <- data.frame(A=c(4, 0, 3, 3, 6, 8, 7, 9, 12),
                 B=c(4, 2, 3, 5, 6, 4, 7, 7, 12),
                 C=c(4, 0, 3, 5, 5, 10, 7, 9, 12))

#view data frame
df

   A  B  C
1  4  4  4
2  0  2  0
3  3  3  3
4  3  5  5
5  6  6  5
6  8  4 10
7  7  7  7
8  9  7  9
9 12 12 12

Nous pouvons utiliser le code suivant pour créer une nouvelle colonne appelée all_matching qui renvoie TRUE si les trois colonnes correspondent dans une ligne donnée et FALSE si ce n’est pas le cas :

#create new column that checks if values in all three columns match
df$all_matching <- df$A == df$B & df$B == df$C

#view updated data frame
df

   A  B  C all_matching
1  4  4  4         TRUE
2  0  2  0        FALSE
3  3  3  3         TRUE
4  3  5  5        FALSE
5  6  6  5        FALSE
6  8  4 10        FALSE
7  7  7  7         TRUE
8  9  7  9        FALSE
9 12 12 12         TRUE

La nouvelle colonne appelée all_matching indique si les valeurs des trois colonnes correspondent ou non dans une ligne donnée.

Par exemple:

  • Les trois valeurs correspondent dans la première ligne, donc TRUE est renvoyé.
  • Toutes les valeurs ne correspondent pas à la deuxième ligne, donc FALSE est renvoyé.
  • Les trois valeurs correspondent dans la troisième ligne, donc TRUE est renvoyé.

Et ainsi de suite.

Si vous souhaitez renvoyer des valeurs autres que TRUE et FALSE , vous pouvez spécifier ces valeurs dans une fonction ifelse() .

Par exemple, nous pouvons utiliser le code suivant pour renvoyer « Oui » si les valeurs des trois colonnes correspondent ou « Non » dans le cas contraire :

#create new column that checks if values in all three columns match
df$all_matching <- ifelse(df$A == df$B & df$B == df$C, 'Yes', 'No')

#view updated data frame
df

   A  B  C all_matching
1  4  4  4          Yes
2  0  2  0           No
3  3  3  3          Yes
4  3  5  5           No
5  6  6  5           No
6  8  4 10           No
7  7  7  7          Yes
8  9  7  9           No
9 12 12 12          Yes

La nouvelle colonne renvoie désormais « Oui » ou « Non » au lieu de TRUE ou FALSE .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment vérifier si une colonne existe dans le bloc de données dans R
Comment vérifier si la colonne contient une chaîne dans R
Comment ajouter une colonne au bloc de données dans R en fonction d’autres colonnes

Ajouter un commentaire

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