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 88Il 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 88Un 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] 3Sfida
FacileCompleta 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")
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Sottostringhe con substr()Formattazione con sprintf()Dividere e unireRicerca nelle stringheSostituzione del testoRipasso - Generatore di nomi utente4Matrici
Creazione di matriciIndicizzazione delle matriciRiepiloghi di righe e colonneOperazioni aritmetiche con le matriciRipasso - Schema dei posti a sedere10Flusso di controllo avanzato
La funzione switch()ifelse() vettorialerepeat e breakFunzioni ricorsiveRiepilogo - Classificatore di voti2Ricerche chiave-valore
Ricerche in vettori con nomiControllare le chiaviAggiungere e rimuovere chiaviIterare sui nomiRiepilogo - Sportello titoli5Progetto - Registro dei voti
Aggiungere studentiRegistrare i voti8Ordinamento e raggruppamento
Ordinare i vettoriOrdinare in base a una chiaveRaggruppare con split()Riepiloghi dei gruppiRipasso - Classifica3Insiemi e conteggio
Valori univociOperazioni sugli insiemiTest di appartenenzaConteggio con table()Riepilogo - Ospiti dell’evento6Le funzioni come valori
Funzioni anonimePassare funzioniRestituire funzioniClosure con statoRiepilogo - Regole di sconto9DataFrame
Creare DataFrameColonne e righeFiltrare le righeAggiungere e ordinareRiepilogo - Report delle vendite12Progetto - Gestione delle spese
Registrare le speseSpesa totaleEsercitati da solo: Compilatore R online