R : Rechercher une colonne avec une valeur maximale pour chaque ligne



Vous pouvez utiliser la syntaxe suivante pour rechercher la colonne avec la valeur maximale pour chaque ligne d’un bloc de données dans R :

df$max_col <- colnames(df)[max.col(df, ties.method='first')]

Notez que l’argument tie.method=’first’ spécifie que la première colonne max doit être renvoyée s’il existe plusieurs colonnes avec une valeur maximale dans une ligne donnée.

Les autres valeurs que vous pouvez fournir à cet argument incluent random et last , si vous souhaitez plutôt renvoyer une colonne max aléatoire ou la dernière colonne max.

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

Exemple : Rechercher une colonne avec une valeur maximale pour chaque ligne dans R

Supposons que nous ayons la trame de données suivante dans R qui contient des informations sur le nombre de points marqués par six joueurs de basket différents au cours de trois matchs :

#create data frame
df <- data.frame(game1=c(23, 20, 14, 12, 19, 15),
                 game2=c(9, 10, 11, 13, 13, 15),
                 game3=c(29, 11, 22, 19, 14, 15))

#view data frame
df

  game1 game2 game3
1    23     9    29
2    20    10    11
3    14    11    22
4    12    13    19
5    19    13    14
6    15    15    15

Supposons que nous souhaitions créer une nouvelle colonne contenant le nom de la colonne avec la valeur maximale dans chaque ligne du bloc de données.

Nous pouvons utiliser la syntaxe suivante pour ce faire :

#create new column that contains column with max value for each row
df$max_col <- colnames(df)[max.col(df, ties.method='first')]

#view updated data frame
df

  game1 game2 game3 max_col
1    23     9    29   game3
2    20    10    11   game1
3    14    11    22   game3
4    12    13    19   game3
5    19    13    14   game1
6    15    15    15   game1

La nouvelle colonne appelée max_col contient le nom de la colonne avec la valeur maximale dans chaque ligne.

Par exemple:

  • Dans la première ligne, game3 contenait la valeur maximale.
  • Dans la deuxième ligne, game1 contenait la valeur maximale.
  • Dans la troisième ligne, game3 contenait la valeur maximale.

Et ainsi de suite.

Notez que chaque colonne de la dernière ligne a la même valeur.

Puisque nous avons spécifié tie.method=’first’ dans la fonction max.col() , le code a renvoyé game1 comme colonne avec la valeur maximale puisqu’il s’agit de la première colonne maximale.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :

R : Comment trouver des lignes uniques sur plusieurs colonnes
R : Comment rechercher des colonnes avec toutes les valeurs manquantes
R : Comment trouver des valeurs uniques dans une colonne

Ajouter un commentaire

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