Menu
Coddy logo textTech

Conteo con table()

Parte de la sección Lógica y flujo del Journey de R de Coddy. Lección 15 de 64.

table(x) cuenta cuántas veces aparece cada valor. El resultado recibe como nombres los valores, ordenados alfabéticamente, por lo que el recuento de un valor es t[["value"]]:

votes <- c("tea", "coffee", "tea", "juice", "tea")
t <- table(votes)
print(t[["tea"]])
print(names(t))
print(as.vector(t))

Salida:

[1] 3
[1] "coffee" "juice"  "tea"   
[1] 1 1 3

sort(t, decreasing = TRUE) ordena los recuentos de mayor a menor. which.max(t) proporciona la posición del recuento más grande; cuando los recuentos empatan, elige el primero, que es el valor que aparece primero alfabéticamente:

votes <- c("tea", "coffee", "tea", "juice", "coffee")
t <- table(votes)
print(names(t)[which.max(t)])
print(max(t))

Salida:

[1] "coffee"
[1] 2

Un valor que nunca aparece no está en la tabla, así que compruébalo con %in% names(t) antes de leerlo:

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

Salida:

A 2 
B 1 
C 0 

table() también cuenta números y valores lógicos. Para contar un único valor, sum(x == value) es más corto que construir una tabla:

rolls <- c(6, 2, 6, 6, 1)
print(sum(rolls == 6))
print(table(rolls > 3)[["TRUE"]])

Salida:

[1] 3
[1] 3
challenge icon

Desafío

Fácil

Completa vote_winner(votes). Devuelve la opción con más votos seguida de su cantidad, como en tea (3 votes). Cuando las opciones empaten, devuelve la que aparece primero alfabéticamente.

El código proporcionado lee los votos como una línea separada por comas e imprime el valor devuelto.

Pruébalo tú mismo

vote_winner <- function(votes) {
  # Escribe tu código aquí
  ""
}

# Código de entrada/salida suministrado: déjalo como está
input <- suppressWarnings(readLines(file("stdin")))
cat(vote_winner(strsplit(input[1], ",")[[1]]), sep = "\n")
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de R online