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
Intermediate R
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.