Accéder au contenu principal

Tri dans R à l'aide de order() Tutoriel

Dans ce tutoriel, vous apprendrez à trier en utilisant order(). Nous verrons comment trier des vecteurs à l'aide de différents paramètres, comment trier des dataframes, etc.
Actualisé 14 nov. 2024  · 6 min de lecture

R propose différentes manières de trier les données, soit par ordre croissant, soit par ordre décroissant ; les analystes de données et les scientifiques des données utilisent order(), sort() et des packages comme dplyr pour trier les données en fonction de la structure des données obtenues.

order() peut trier des vecteurs, des matrices, et aussi un DataFrame peut être trié dans l'ordre croissant et décroissant avec son aide, ce qui est montré dans la dernière section de ce tutoriel.

Syntaxe de order()

La syntaxe de order() est présentée ci-dessous :

order(x, decreasing = TRUE or FALSE, na.last = TRUE or FLASE, method = c("auto", "shell", "quick", "radix"))

L'argument ci-dessus, à l'adresse order(), indique que

  • x : cadres de données, matrices ou vecteurs
  • decreasing : valeur booléenne ; TRUE pour trier par ordre décroissant ou FALSE pour trier par ordre croissant.
  • na.last : valeur booléenne ; TRUE alors les indices NA sont placés en dernier ou FLASE alors les indices NA sont placés en premier.
  • method : méthode de tri à utiliser.

order() en R

Prenons un exemple de order() en action.

Le code ci-dessous contient la variable x, qui comprend un vecteur avec une liste de nombres. Les nombres sont classés en fonction de leur indice en utilisant order(x).

y = c(4,12,6,7,2,9,5)
order(y)

Le code ci-dessus donne le résultat suivant :

5 1 7 3 4 6 2

Ici, le site order() triera les nombres donnés en fonction de leur index dans l'ordre croissant. Le numéro 2 étant le plus petit, il a un indice de 5 et le numéro 4 un indice de 1, et le processus se poursuit de la même manière.

y = c(4,12,6,7,2,9,5)
y[order(y)]

Le code ci-dessus donne le résultat suivant :

2 4 5 6 7 9 12

Ici, l'indexation de l'ordre est effectuée et les valeurs réelles sont imprimées dans l'ordre croissant. Les valeurs sont classées en fonction de l'index à l'aide de order() puis, après chaque valeur, à l'aide de y[some-value].

Tri de vecteurs à l'aide de différents paramètres en order()

Prenons un exemple où les ensembles de données contiennent la valeur sous forme de symbole NA(Non disponible).

order(x,na.last=TRUE)

x <- c(8,2,4,1,-4,NA,46,8,9,5,3)
order(x,na.last = TRUE)

Le code ci-dessus donne le résultat suivant :

5 4 2 11 3 10 1 8 9 7 6

Ici, le site order() triera également la liste de nombres donnée en fonction de son index dans l'ordre croissant. Puisque NA est présent, son indice sera placé en dernier, où 6 sera placé en dernier à cause de na.last=TRUE.

order(x,na.last=FALSE)

order(x,na.last=FALSE)

Le code ci-dessus donne le résultat suivant :

6 5 4 2 11 3 10 1 8 9 7

Ici, le site order() triera également la liste de nombres donnée en fonction de son index dans l'ordre croissant. Puisque NA est présent, son index, qui est 6, sera placé en premier à cause de na.last=FALSE.

order(x,decreasing=TRUE,na.last=TRUE)

order(x,decreasing=TRUE,na.last=TRUE)

Le code ci-dessus donne le résultat suivant :

7 9 1 8 10 3 11 2 4 5 6

Ici, order() triera une liste donnée de nombres selon son indice dans l'ordre décroissant à cause de decreasing=TRUE: 46. La plus grande valeur est placée à l'indice 7, et les autres valeurs sont classées de manière décroissante. Comme NA est présent, l'index 6 sera placé en dernier à cause de na.last=TRUE.

order(x,decreasing=FALSE,na.last=FALSE)

order(x,decreasing=FALSE,na.last=FALSE)

Le code ci-dessus donne le résultat suivant :

6 5 4 2 11 3 10 1 8 9 7

Ici, NA, dont l'indice est 6, sera placé en premier à cause de na.last=FALSE. order() triera une liste donnée de nombres en fonction de son indice dans l'ordre croissant à cause de decreasing=FALSE: -4, qui est le plus petit, est placé à l'indice 5, et les autres valeurs sont classées par ordre croissant.

Commencez à apprendre R gratuitement

Introduction to R

BeginnerSkill Level
4 hr
2.8M learners
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
See DetailsRight Arrow

Intermediate R

BeginnerSkill Level
6 hr
624.2K learners
Continue your journey to becoming an R ninja by learning about conditional statements, loops, and vector functions.

Trier un DataFrame en utilisant la fonction order()

Créons un DataFrame dont la valeur de la population est 10. La variable "sexe" se compose des valeurs vectorielles "homme" et "femme". Dix valeurs d'échantillon peuvent être obtenues à l'aide de sample(), tandis que replace = TRUE ne génère que des valeurs uniques. De même, l'âge se compose de valeurs comprises entre 25 et 75, ainsi que d'un diplôme dont la valeur possible est c("MA", "ME", "BE", "BSCS"), ce qui génère à nouveau des valeurs uniques.

Tâche: Trier les données données dans l'ordre croissant en fonction de l'âge de la population donnée.

Note : L'échantillon de données affiché peut différer lorsque vous essayez de l'utiliser sur votre machine locale, car chaque fois que vous exécutez un code, un dataFrame unique est créé.

population = 10
gender=sample(c("male","female"),population,replace=TRUE)
age = sample(25:75, population, replace=TRUE)
degree = sample(c("MA","ME","BE","BSCS"), population, replace=TRUE)
(final.data = data.frame(gender=gender, age=age, degree=degree))
gender âge degré
mâle 40 MA
femelle 57 BSCS
mâle 66 BE
femelle 61 BSCS
femelle 48 MA
mâle 25 MA
femelle 49 BE
mâle 52 ME
femelle 57 MA
femelle 35 MA

Le code ci-dessus donne la sortie suivante, qui montre un DataFrame nouvellement créé.

  gender       age        degree
   male           40         MA
   female       57         BSCS
   male           66         BE
   female       61         BSCS
   female       48        MA
   male           25         MA
   female       49         BE
   male        52        ME
   female       57         MA
   female       35         MA

Trions le DataFrame dans l'ordre croissant en utilisant order() sur la base de la variable age.

order(final.data$age)

Le code ci-dessus donne le résultat suivant :

6 10 3 9 5 8 4 2 7 1

L'âge de 25 ans étant à l'indice 6, suivi de l'âge de 35 ans à l'indice 10, toutes les valeurs liées à l'âge sont classées par ordre croissant.

Le code ci-dessous contient l'ordre [] avec la variable âge, est utilisé pour classer dans l'ordre croissant où le sexe, ainsi que les informations sur le diplôme sont également imprimés.

final.data[order(final.data$age),]
  gender âge degré
6 mâle 25 MA
10 femelle 35 MA
1 mâle 40 MA
5 femelle 48 MA
7 femelle 49 BE
8 mâle 52 ME
2 femelle 57 BSCS
9 femelle 57 MA
4 femelle 61 BSCS
3 mâle 66 BE

Le code ci-dessus donne le résultat suivant :

gender    age    degree
6    male    25    MA
10    female    35    MA
1    male    40    MA
5    female    48    MA
7    female    49    BE
8    male    52    ME
2    female    57    BSCS
9    female    57    MA
4    female    61    BSCS
3    male    66    BE

Le résultat ci-dessus montre que l'âge est classé par ordre croissant avec le sexe correspondant et que l'on obtient des informations sur les diplômes.

Félicitations

Félicitations, vous avez atteint la fin de ce tutoriel !

Vous avez appris à trier en utilisant order() avec son argument avec les exemples et le tri de vecteur en utilisant différents paramètres et l'exemple final, qui contient le tri du dataframe.

Pour plus de détails sur ce sujet, vous pouvez consulter la fonction Order dans R

Si vous souhaitez en savoir plus sur R, suivez le cours Introduction à R de DataCamp.

Sujets

R Cours

Cours

Introduction to R

4 hr
2.8M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.

Nathaniel Taylor-Leach

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus