Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Le guide complet : comment utiliser sort(), order() et Rank() dans R



Trois fonctions de R que les gens confondent souvent sont le tri , l’ordre et le classement .

Voici la différence entre ces fonctions :

  • sort() triera un vecteur par ordre croissant
  • order() renverra l’index de chaque élément d’un vecteur dans l’ordre trié
  • Rank() attribuera un rang à chaque élément d’un vecteur (le plus petit = 1)

L’exemple suivant montre comment utiliser chacune de ces fonctions dans la pratique.

Exemple : utilisez sort(), order() et Rank() avec des vecteurs

Le code suivant montre comment utiliser les fonctions sort() , order() et Rank() avec un vecteur à quatre valeurs :

#create vector
x <- c(0, 20, 10, 15)

#sort vector
sort(x)

[1]  0 10 15 20

#order vector
order(x)

[1] 1 3 4 2

#rank vector
rank(x)

[1] 1 4 2 3

Voici ce que chaque fonction a fait :

1. La fonction sort() triait simplement les valeurs du vecteur par ordre croissant.

2. La fonction order() a renvoyé l’index de chaque élément dans l’ordre trié.

  • Si vous mettez les valeurs du vecteur d’origine dans l’ordre en fonction de ces valeurs d’index, vous obtiendrez un vecteur trié.
  • Par exemple, order() nous dit de mettre d’abord la valeur en position d’index 1 – c’est 0 dans le vecteur d’origine.
  • Ensuite, order() nous dit de mettre ensuite la valeur en position d’index 3 – c’est 10 dans le vecteur d’origine.
  • Ensuite, order() nous dit de mettre ensuite la valeur en position d’index 4 – c’est 15 dans le vecteur d’origine.
  • Ensuite, order() nous dit de mettre ensuite la valeur en position d’index 2 – c’est 20 dans le vecteur d’origine.
  • Le résultat final est un vecteur trié – 0, 10, 15, 20.

3. La fonction Rank() attribuait un rang à chaque élément du vecteur, en utilisant 1 pour la plus petite valeur.

  • Par exemple, Rank() nous indique que la première valeur du vecteur d’origine est la plus petite (rang = 1) et que la deuxième valeur du vecteur d’origine est la plus grande (rang = 4).

Notez que nous pouvons utiliser la syntaxe suivante pour utiliser sort() , order() et rang() dans l’ordre inverse :

#create vector
x <- c(0, 20, 10, 15)

#sort vector in decreasing order
sort(x, decreasing=TRUE)

[1] 20 15 10  0

#order vector in decreasing order
order(x, decreasing=TRUE)

[1] 2 4 3 1

#rank vector in reverse order (largest value = 1)
rank(-x)

[1] 4 1 3 2

Notez que ces résultats sont exactement à l’opposé de ceux produits dans les exemples précédents.

Remarque : Comment gérer les égalités avec la fonction Rank()

Nous pouvons utiliser l’argument tie.method pour spécifier comment nous devons gérer les égalités lors de l’utilisation de la fonction Rank() :

rank(x, ties.method='average')

Vous pouvez utiliser l’une des options suivantes pour spécifier comment gérer les liens :

  • 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)
  • 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)

Selon votre scénario, l’une de ces méthodes peut être plus judicieuse à utiliser que les autres.

Ressources additionnelles

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

Comment trier par plusieurs colonnes dans R
Comment trier une trame de données par date dans R
Comment calculer le rang centile dans R

Ajouter un commentaire

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