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