Trier des vecteurs avec sort()
Triez des vecteurs numériques et de caractères par ordre croissant ou décroissant.
Trier des vecteurs avec sort() est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.
Que fait sort() ?
Par défaut, la fonction sort() range les éléments d’un vecteur dans l’ordre croissant. Elle fonctionne avec les vecteurs numeric, character et logical, et renvoie un nouveau vecteur trié sans modifier l’original.
scores <- c(42, 7, 95, 13, 67, 31)
sorted_scores <- sort(scores)
print(sorted_scores)Tri dans l’ordre décroissant
Transmettez decreasing = TRUE à sort() pour inverser l’ordre. Cela est utile pour classer des résultats du plus élevé au plus faible, par exemple des scores de classement ou des chiffres de ventes.
prices <- c(19.99, 5.49, 89.00, 34.50, 12.75)
sort(prices, decreasing = TRUE)Trier des vecteurs character
Les vecteurs character sont triés dans l’ordre lexicographique (alphabétique). R utilise les paramètres régionaux du système pour le classement ; selon ces paramètres, les majuscules peuvent donc être placées avant les minuscules.
fruits <- c('banana', 'Apple', 'cherry', 'apricot', 'Blueberry')
sort(fruits)Comportement du tri sensible à la casse
Dans la plupart des paramètres régionaux, les majuscules sont placées avant les minuscules. Pour effectuer un tri insensible à la casse, convertissez d’abord toutes les valeurs dans une même casse avec tolower() ou toupper().
words <- c('Zebra', 'apple', 'Mango', 'banana')
# Case-sensitive (uppercase first)
sort(words)
# Case-insensitive approach
words[order(tolower(words))]Gérer les valeurs NA avec na.last
Par défaut, sort() supprime les valeurs NA. Utilisez na.last = TRUE pour placer les NA à la fin, ou na.last = FALSE pour les placer au début. Cela contrôle l’emplacement des valeurs manquantes dans le résultat.
data <- c(5, NA, 2, NA, 8, 1)
# Default: NAs removed
sort(data)
# NAs at end
sort(data, na.last = TRUE)
# NAs at beginning
sort(data, na.last = FALSE)Trier des vecteurs logical
Lors d’un tri croissant, les vecteurs logical placent FALSE (0) avant TRUE (1). Cela peut être utile pour regrouper les valeurs TRUE/FALSE.
flags <- c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE)
sort(flags)
sort(flags, decreasing = TRUE)sort() préserve le type du vecteur
sort() renvoie toujours un vecteur du même type que l’entrée. Le tri d’entiers renvoie des entiers, celui de nombres double renvoie des nombres double, et celui de caractères renvoie des caractères. L’attribut de classe est préservé.
int_vec <- c(5L, 2L, 8L, 1L, 4L)
result <- sort(int_vec)
print(result)
print(class(result))
print(typeof(result))sort.int() pour trier des entiers
sort.int() est une fonction de niveau inférieur spécialement conçue pour trier des vecteurs integer ou double. Elle accepte les mêmes arguments que sort(), mais est légèrement plus rapide pour les grands vecteurs numeric, car elle évite une partie de la surcharge liée à la sélection des méthodes.
big_vec <- c(100L, 3L, 77L, 22L, 55L, 9L)
# sort.int works like sort for numeric/integer vectors
result <- sort.int(big_vec, decreasing = FALSE)
print(result)Le vecteur d’origine reste inchangé
Une propriété importante de sort() : la fonction ne modifie pas le vecteur d’origine. Elle renvoie un nouveau vecteur trié. Vous devez affecter le résultat si vous souhaitez conserver l’ordre trié.
temps <- c(22.5, 18.0, 30.1, 15.3, 27.8)
sorted_temps <- sort(temps)
cat('Original:', temps, '\n')
cat('Sorted: ', sorted_temps, '\n')Trier et indexer simultanément
Vous avez parfois besoin à la fois des valeurs triées et de leurs positions d’origine. Combinez sort() avec which(), ou utilisez order() (présenté dans la prochaine leçon) pour récupérer les indices d’origine avec les valeurs triées.
exam_scores <- c(78, 92, 65, 88, 71)
sorted <- sort(exam_scores)
cat('Sorted scores:', sorted, '\n')
# Find what rank each original score gets
ranks <- rank(exam_scores)
cat('Rank of each student:', ranks, '\n')Schémas pratiques avec sort()
Un schéma courant consiste à trier les valeurs uniques d’un vecteur ou à obtenir les N plus grandes valeurs avec sort() combiné à head() ou tail().
sales <- c(120, 340, 95, 210, 340, 180, 95, 420)
# Unique values in order
sort(unique(sales))
# Top 3 largest
tail(sort(sales), 3)
# Bottom 3 smallest
head(sort(sales), 3)Vérification rapide
Quel argument contrôle si les valeurs NA apparaissent au début, à la fin ou sont supprimées lors de l’utilisation de sort() ?
Principaux points à retenir sur sort()
Principaux points à retenir sur sort() :
- Utilisez
sort(x)pour l’ordre croissant etsort(x, decreasing=TRUE)pour l’ordre décroissant - Les vecteurs character sont triés par ordre alphabétique ; la casse est prise en compte par défaut
- Contrôlez l’emplacement des NA avec
na.last = TRUE/FALSE/NA sort()ne modifie pas le vecteur d’origine : la fonction en renvoie toujours un nouveau- Utilisez
tail(sort(x), n)ouhead(sort(x), n)pour obtenir les N valeurs les plus grandes ou les plus petites sort.int()est une variante plus rapide pour les vecteurs numeric/integer
x <- c(3, 1, NA, 5, 2, NA, 4)
cat('Ascending (no NAs):', sort(x), '\n')
cat('Descending (NAs last):', sort(x, decreasing = TRUE, na.last = TRUE), '\n')Questions Fréquemment Posées
La leçon « Trier des vecteurs avec sort() » est-elle gratuite ?
Oui — le texte complet de « Trier des vecteurs avec sort() » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Trier des vecteurs avec sort() » ?
Triez des vecteurs numériques et de caractères par ordre croissant ou décroissant. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer R Academy ?
Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Trier des vecteurs avec sort() » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon R Academy ?
Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Trier des vecteurs avec sort()
- order() pour un classement flexible
- Classer des valeurs avec rank()
- Trier des data frames par colonne