Menu
Coddy logo textTech

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 3

sort(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] 2

Un 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] 3
challenge icon

Sfida

Facile

Completa 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")
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