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 à R

BeginnerSkill Level
4
2.8M learners
Maîtrisez les bases de l'analyse de données en R, y compris les vecteurs, les listes et les cadres de données, et pratiquez R avec des ensembles de données réels.
See DetailsRight Arrow

Intermédiaire R

BeginnerSkill Level
6
609.3K learners
Poursuivez votre parcours pour devenir un ninja de R en vous familiarisant avec les instructions conditionnelles, les boucles et les fonctions vectorielles.

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

Certification disponible

cours

Introduction à R

4 hr
2.8M
Maîtrisez les bases de l'analyse de données en R, y compris les vecteurs, les listes et les cadres de données, et pratiquez R avec des ensembles de données réels.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow