Conteggio con table()
Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 15 di 64.
table(x) conta quante volte compare ciascun valore. Il risultato è denominato in base ai valori, ordinati alfabeticamente, quindi il conteggio di un valore è t[["value"]]:
votes <- c("tea", "coffee", "tea", "juice", "tea")
t <- table(votes)
print(t[["tea"]])
print(names(t))
print(as.vector(t))Output:
[1] 3
[1] "coffee" "juice" "tea"
[1] 1 1 3sort(t, decreasing = TRUE) ordina i conteggi dal più alto al più basso. which.max(t) restituisce la posizione del conteggio più alto; in caso di parità, sceglie il primo, ovvero il valore che viene per primo in ordine alfabetico:
votes <- c("tea", "coffee", "tea", "juice", "coffee")
t <- table(votes)
print(names(t)[which.max(t)])
print(max(t))Output:
[1] "coffee"
[1] 2Un valore che non si verifica mai non è presente affatto nella tabella, quindi controlla con %in% names(t) prima di leggerlo:
t <- table(c("A", "B", "A"))
for (grade in c("A", "B", "C")) {
n <- if (grade %in% names(t)) t[[grade]] else 0
cat(grade, n, "\n")
}Output:
A 2
B 1
C 0 table() conta anche i numeri e i valori logici. Per contare un singolo valore, sum(x == value) è più breve che creare una tabella:
rolls <- c(6, 2, 6, 6, 1)
print(sum(rolls == 6))
print(table(rolls > 3)[["TRUE"]])Output:
[1] 3
[1] 3Sfida
FacileCompleta vote_winner(votes). Restituisci l'opzione con più voti seguita dal relativo conteggio, come in tea (3 votes). In caso di parità tra opzioni, restituisci quella che viene prima in ordine alfabetico.
Il codice fornito legge i voti come una riga separata da virgole e stampa il valore restituito.
Provalo tu
vote_winner <- function(votes) {
# Write your code here
""
}
# Supplied input/output code: keep it as it is
input <- suppressWarnings(readLines(file("stdin")))
cat(vote_winner(strsplit(input[1], ",")[[1]]), 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