Ordinamento dei vettori con sort()
Ordini vettori numerici e character in ordine crescente o decrescente.
Ordinamento dei vettori con sort() è una lezione R Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento R Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso R Academy include 4 lezioni in totale.
Che cosa fa sort()
Per impostazione predefinita, la funzione sort() dispone gli elementi di un vettore in ordine crescente. Funziona con vettori numerici, character e logical e restituisce un nuovo vettore ordinato senza modificare quello originale.
scores <- c(42, 7, 95, 13, 67, 31)
sorted_scores <- sort(scores)
print(sorted_scores)Ordinamento in ordine decrescente
Passi decreasing = TRUE a sort() per invertire l'ordine. È utile per classificare i risultati dal valore più alto a quello più basso, ad esempio i punteggi di una classifica o i dati sulle vendite.
prices <- c(19.99, 5.49, 89.00, 34.50, 12.75)
sort(prices, decreasing = TRUE)Ordinamento dei vettori character
I vettori character vengono ordinati lessicograficamente (in ordine alfabetico). R usa la locale del sistema per stabilire l'ordine, quindi le lettere maiuscole potrebbero precedere quelle minuscole a seconda delle impostazioni della locale.
fruits <- c('banana', 'Apple', 'cherry', 'apricot', 'Blueberry')
sort(fruits)Comportamento dell'ordinamento con distinzione tra maiuscole e minuscole
Nella maggior parte delle locale, le lettere maiuscole precedono quelle minuscole. Per ordinare senza distinguere tra maiuscole e minuscole, converta prima tutti i valori nello stesso formato usando tolower() o toupper().
words <- c('Zebra', 'apple', 'Mango', 'banana')
# Case-sensitive (uppercase first)
sort(words)
# Case-insensitive approach
words[order(tolower(words))]Gestire i valori NA con na.last
Per impostazione predefinita, sort() rimuove i valori NA. Usi na.last = TRUE per collocare gli NA alla fine oppure na.last = FALSE per collocarli all'inizio. In questo modo controlla la posizione dei valori mancanti nel risultato.
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)Ordinamento dei vettori logical
Nell'ordine crescente, i vettori logical vengono ordinati con FALSE (0) prima di TRUE (1). Questo può essere utile quando desidera raggruppare i valori TRUE/FALSE.
flags <- c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE)
sort(flags)
sort(flags, decreasing = TRUE)sort() preserva il tipo del vettore
sort() restituisce sempre un vettore dello stesso tipo dell'input. L'ordinamento di valori integer restituisce integer, quello di valori double restituisce double e quello di valori character restituisce character. L'attributo class viene preservato.
int_vec <- c(5L, 2L, 8L, 1L, 4L)
result <- sort(int_vec)
print(result)
print(class(result))
print(typeof(result))sort.int() per l'ordinamento degli integer
sort.int() è una funzione di livello più basso, specifica per l'ordinamento di vettori integer o double. Accetta gli stessi argomenti di sort(), ma è leggermente più veloce con vettori numerici di grandi dimensioni perché evita parte dell'overhead della ricerca dei metodi.
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)Il vettore originale non cambia
Una proprietà importante di sort() è che non modifica il vettore originale. Restituisce un nuovo vettore ordinato. Deve assegnare il risultato se desidera conservare l'ordine ordinato.
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')Ordinamento e indicizzazione insieme
A volte sono necessari sia i valori ordinati sia le loro posizioni originali. Combini sort() con which() oppure utilizzi order() (che verrà trattata nella prossima lezione) per recuperare gli indici originali insieme ai valori ordinati.
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')Modelli pratici con sort()
Un modello comune consiste nell'ordinare i valori unici di un vettore oppure nell'ottenere i valori più grandi, fino a N, usando sort() insieme a head() o 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)Verifica rapida
Quale argomento controlla se i valori NA vengono visualizzati all'inizio, alla fine o rimossi quando si usa sort()?
Concetti chiave di sort()
Concetti chiave di sort():
- Usi
sort(x)per l'ordine crescente esort(x, decreasing=TRUE)per quello decrescente - I vettori character vengono ordinati alfabeticamente; per impostazione predefinita, le maiuscole e le minuscole vengono trattate diversamente
- Controlli la posizione degli NA con
na.last = TRUE/FALSE/NA sort()non modifica il vettore originale: restituisce sempre un vettore nuovo- Usi
tail(sort(x), n)ohead(sort(x), n)per ottenere i valori tra i primi N o gli ultimi N sort.int()è una variante più veloce per i vettori 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')Domande Frequenti
La lezione «Ordinamento dei vettori con sort()» è gratuita?
Sì — il testo completo di «Ordinamento dei vettori con sort()» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso R Academy, passa a CoddyKit PRO. Il corso R Academy include 4 lezioni in totale.
Cosa imparerò in «Ordinamento dei vettori con sort()»?
Ordini vettori numerici e character in ordine crescente o decrescente. Eserciti R Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare R Academy?
Non è richiesta alcuna esperienza precedente. R Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Ordinamento dei vettori con sort()»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione R Academy?
Sì. Ogni lezione R Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Ordinamento dei vettori con sort()
- order() per un ordinamento flessibile
- Classificazione dei valori con rank()
- Ordinamento dei data frame per colonna