Comment comparer deux colonnes dans R : avec des exemples



Souvent, vous souhaiterez peut-être comparer deux colonnes dans R et écrire les résultats de la comparaison dans une troisième colonne.

Vous pouvez facilement le faire en utilisant la syntaxe suivante :

df$new_col <- ifelse(df$col1 > df$col2, 'A',
                ifelse(df$col1 < df$col2, 'B', 'C'))

Cette seule ligne de code effectue les opérations suivantes :

  • Si la colonne 1 est supérieure à la colonne 2, écrivez « A » comme sortie dans la troisième colonne.
  • Sinon, si la colonne 1 est inférieure à la colonne 2, écrivez « B » comme sortie.
  • Sinon, écrivez « C » comme sortie.

L’exemple suivant montre comment utiliser ce code dans la pratique.

Exemple : comparer deux colonnes dans R

Supposons que nous disposions du bloc de données suivant qui montre le nombre de buts marqués par deux équipes de football dans cinq matches différents :

#create data frame
df <- data.frame(A_points=c(1, 3, 3, 3, 5),
                 B_points=c(4, 5, 2, 3, 2))

#view data frame
df

  A_points B_points
1        1        4
2        3        5
3        3        2
4        3        3
5        5        2

Nous pouvons utiliser le code suivant pour comparer le nombre de buts par ligne et afficher le vainqueur du match dans une troisième colonne :

#compare A_points and B_points and output results to new column titled winner
df$winner <- ifelse(df$A_points > df$B_points, 'A',
               ifelse(df$A_points < df$B_points, 'B', 'Tie'))

#view data frame
df

  A_points B_points winner
1        1        4      B
2        3        5      B
3        3        2      A
4        3        3    Tie
5        5        2      A

Les résultats de la comparaison sont affichés dans la nouvelle colonne appelée gagnant .

Ressources additionnelles

Comment empiler des colonnes de blocs de données dans R
Comment combiner deux colonnes en une seule dans R
Comment parcourir les noms de colonnes dans R

Ajouter un commentaire

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