Menu
Coddy logo textTech

Ordinare i vettori

Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 37 di 64.

sort(x) restituisce i valori di x in ordine crescente, mentre decreasing = TRUE li inverte. Il vettore originale non viene modificato:

scores <- c(72, 95, 60, 88)
print(sort(scores))
print(sort(scores, decreasing = TRUE))
print(scores)

Output:

[1] 60 72 88 95
[1] 95 88 72 60
[1] 72 95 60 88

Il testo viene ordinato alfabeticamente. L’ordine esatto dipende dalle impostazioni della lingua del sistema: su Coddy, come su molti server, le lettere maiuscole precedono quelle minuscole, quindi "Zed" viene prima di "ada". Converti con tolower() quando la distinzione tra maiuscole e minuscole non deve essere rilevante:

names <- c("cy", "Zed", "ada")
print(sort(names))
print(sort(tolower(names)))

Output:

[1] "Zed" "ada" "cy" 
[1] "ada" "cy"  "zed"

rev(x) inverte l’ordine corrente senza ordinare e head(x, n) mantiene i primi n elementi; insieme a sort(), consente di ottenere una classifica dei migliori:

scores <- c(72, 95, 60, 88)
print(rev(scores))
print(head(sort(scores, decreasing = TRUE), 2))

Output:

[1] 88 60 95 72
[1] 95 88

Un vettore con nomi ordinato mantiene ogni nome insieme al suo valore, quindi i nomi vengono restituiti nell'ordine dei valori:

stock <- c(tea = 12, jam = 3, oil = 7)
low_first <- sort(stock)
print(names(low_first))
print(low_first[["jam"]])

Output:

[1] "jam" "oil" "tea"
[1] 3
challenge icon

Sfida

Facile

Completa top_scores(scores, n). Restituisci i n punteggi più alti, dal più alto al più basso, uniti con , . Se ci sono meno di n punteggi, restituiscili tutti.

Il codice fornito legge i punteggi da una riga di valori separati da virgole e n, quindi stampa il valore restituito.

Provalo tu

top_scores <- function(scores, n) {
  # Scrivi il tuo codice qui
  ""
}

# Codice di input/output fornito: lascialo così com'è
input <- suppressWarnings(readLines(file("stdin")))
cat(top_scores(as.numeric(strsplit(input[1], ",")[[1]]), as.numeric(input[2])), sep = "\n")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore R online