R : Un guide complet sur la méthode tie.method dans la fonction de classement



Vous pouvez utiliser la fonction Rank() en base R pour renvoyer un rang de valeurs dans un vecteur.

Cette fonction utilise la syntaxe de base suivante :

rang(x, na.last=TRUE,ties.method=”moyenne”)

où:

  • x : Le vecteur qui contient les valeurs à classer
  • na.last : Si VRAI, les valeurs manquantes sont mises en dernier. Si FALSE, les valeurs manquantes sont mises en premier.
  • tie.method : Comment gérer les égalités (la valeur par défaut est « moyenne »)

L’argument Ties.method dans la fonction Rank() spécifie comment les égalités doivent être gérées.

Cet argument accepte les options suivantes :

  • moyenne : (Par défaut) Attribue à chaque élément lié le rang moyen (les éléments classés en 3ème et 4ème position recevraient tous deux un rang de 3,5)
  • premier : Attribue le premier élément lié au rang le plus bas (les éléments classés en 3ème et 4ème positions recevraient respectivement les rangs 3 et 4)
  • last : Attribue le dernier élément lié au rang le plus bas (les éléments classés en 3ème et 4ème positions recevraient respectivement les rangs 4 et 3)
  • min : Assigne chaque élément lié au rang le plus bas (les éléments classés en 3ème et 4ème position recevraient tous deux un rang de 3)
  • max : Attribue à chaque élément lié le rang le plus élevé (les éléments classés en 3ème et 4ème position recevraient tous deux un rang de 4)
  • aléatoire : attribue à chaque élément à égalité un rang aléatoire (l’un ou l’autre des éléments à égalité pour la 3ème et la 4ème position pourrait recevoir l’un ou l’autre rang)

Les exemples suivants montrent comment utiliser chaque option en pratique avec le bloc de données suivant dans R :

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E'),
                 points=c(5, 8, 10, 10, 17))

#view data frame
df

  player points
1      A      5
2      B      8
3      C     10
4      D     10
5      E     17

Exemple 1 : utilisez Rank() avec Ties.method= »average »

Le code suivant montre comment créer une nouvelle colonne qui utilise Rank() avec Ties.method= »average » pour attribuer un classement à chaque joueur en fonction de la valeur de la colonne de points :

#create new column that ranks players based on their points value
df$points_rank = rank(df$points, ties.method="average")

#view updated data frame
df

  player points points_rank
1      A      5         1.0
2      B      8         2.0
3      C     10         3.5
4      D     10         3.5
5      E     17         5.0

Puisque les joueurs C et D avaient le même nombre de points et occupaient les positions 3 et 4, ils ont tous deux reçu la moyenne de leur classement : 3,5 .

Exemple 2 : utilisez Rank() avec Ties.method=”first”

Le code suivant montre comment créer une nouvelle colonne qui utilise Rank() avec Ties.method=”first” pour attribuer un classement à chaque joueur en fonction de la valeur de la colonne de points :

#create new column that ranks players based on their points value
df$points_rank = rank(df$points, ties.method="first")

#view updated data frame
df

  player points points_rank
1      A      5           1
2      B      8           2
3      C     10           3
4      D     10           4
5      E     17           5

Puisque les joueurs C et D avaient le même nombre de points et occupaient les positions 3 et 4, le premier joueur entre ces deux (joueur « C ») a reçu le rang le plus bas.

Exemple 3 : utilisez Rank() avec Ties.method= »last »

Le code suivant montre comment créer une nouvelle colonne qui utilise Rank() avec Ties.method=”last” pour attribuer un classement à chaque joueur en fonction de la valeur de la colonne de points :

#create new column that ranks players based on their points value
df$points_rank = rank(df$points, ties.method="last")

#view updated data frame
df

  player points points_rank
1      A      5           1
2      B      8           2
3      C     10           4
4      D     10           3
5      E     17           5

Puisque les joueurs C et D avaient le même nombre de points et occupaient les positions 3 et 4, le dernier joueur entre ces deux (le joueur « D ») a reçu le rang le plus bas.

Exemple 4 : utilisez Rank() avec Ties.method=”min”

Le code suivant montre comment créer une nouvelle colonne qui utilise Rank() avec Ties.method=”min” pour attribuer un classement à chaque joueur en fonction de la valeur de la colonne de points :

#create new column that ranks players based on their points value
df$points_rank = rank(df$points, ties.method="min")

#view updated data frame
df

  player points points_rank
1      A      5           1
2      B      8           2
3      C     10           3
4      D     10           3
5      E     17           5

Puisque les joueurs C et D avaient le même nombre de points et étaient aux positions 3 et 4, les deux joueurs ont reçu le rang minimum : 3 .

Exemple 5 : utilisez Rank() avec Ties.method=”max”

Le code suivant montre comment créer une nouvelle colonne qui utilise Rank() avec Ties.method=”max” pour attribuer un classement à chaque joueur en fonction de la valeur de la colonne de points :

#create new column that ranks players based on their points value
df$points_rank = rank(df$points, ties.method="max")

#view updated data frame
df

  player points points_rank
1      A      5           1
2      B      8           2
3      C     10           4
4      D     10           4
5      E     17           5

Puisque les joueurs C et D avaient le même nombre de points et étaient aux positions 3 et 4, les deux joueurs ont reçu le rang maximum : 4 .

Exemple 6 : utilisez Rank() avec Ties.method= »random »

Le code suivant montre comment créer une nouvelle colonne qui utilise Rank() avec Ties.method=”random” pour attribuer un classement à chaque joueur en fonction de la valeur de la colonne de points :

#create new column that ranks players based on their points value
df$points_rank = rank(df$points, ties.method="random")

#view updated data frame
df

  player points points_rank
1      A      5           1
2      B      8           2
3      C     10           4
4      D     10           3
5      E     17           5

Étant donné que les joueurs C et D avaient le même nombre de points et occupaient les positions 3 et 4, chaque joueur s’est vu attribuer au hasard un rang de 3 ou 4.

Notez que lorsque vous utilisez « random » pour tie.method , le rang attribué à chaque valeur peut changer à chaque fois que vous exécutez le code.

Ressources additionnelles

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

Comment utiliser sort(), order() et Rank() dans R
Comment calculer le rang centile dans R
Comment classer par groupe à l’aide de dplyr

Ajouter un commentaire

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