Menu
Coddy logo textTech

Zählen mit table()

Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 15 von 64.

table(x) zählt, wie oft jeder Wert vorkommt. Das Ergebnis wird nach den Werten benannt, die alphabetisch sortiert sind, sodass die Anzahl eines Werts t[["value"]] lautet:

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

Ausgabe:

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

sort(t, decreasing = TRUE) ordnet die Zählwerte vom höchsten zum niedrigsten. which.max(t) gibt die Position des größten Zählwerts zurück; bei gleichen Zählwerten wird der erste ausgewählt, also der alphabetisch erste Wert:

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

Ausgabe:

[1] "coffee"
[1] 2

Ein Wert, der nie vorkommt, ist überhaupt nicht in der Tabelle enthalten. Überprüfe daher mit %in% names(t), bevor du ihn ausliest:

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

Ausgabe:

A 2 
B 1 
C 0 

table() zählt auch Zahlen und logische Werte. Um einen einzelnen Wert zu zählen, ist sum(x == value) kürzer, als eine Tabelle zu erstellen:

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

Ausgabe:

[1] 3
[1] 3
challenge icon

Aufgabe

Einfach

Vervollständige vote_winner(votes). Gib die Option mit den meisten Stimmen gefolgt von ihrer Anzahl zurück, wie in tea (3 votes). Wenn Optionen gleich viele Stimmen haben, gib diejenige zurück, die alphabetisch zuerst kommt.

Der bereitgestellte Code liest die Stimmen als durch Kommas getrennte Zeile ein und gibt den zurückgegebenen Wert aus.

Probier es selbst

vote_winner <- function(votes) {
  # Schreibe deinen Code hier
  ""
}

# Mitgelieferter Ein-/Ausgabe-Code: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
cat(vote_winner(strsplit(input[1], ",")[[1]]), sep = "\n")
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik und Ablaufsteuerung

Übe selbstständig: Online-R-Compiler