Menu
Coddy logo textTech

Eindeutige Werte

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

R hat keinen separaten Mengentyp: Eine Menge ist ein Vektor ohne wiederholte Werte. unique() entfernt die Wiederholungen und behält das erste Auftreten jedes Werts in der ursprünglichen Reihenfolge bei.

tags <- c("r", "stats", "r", "data", "stats")
print(unique(tags))
print(length(unique(tags)))

Ausgabe:

[1] "r"     "stats" "data" 
[1] 3

duplicated() gibt für jeden Wert, der bereits zuvor im Vektor vorkam, TRUE zurück. Das erste Vorkommen ist FALSE:

ids <- c(7, 3, 7, 9, 3)
print(duplicated(ids))
print(ids[duplicated(ids)])

Ausgabe:

[1] FALSE FALSE  TRUE FALSE  TRUE
[1] 7 3

Beide Funktionen vergleichen exakte Werte, daher sind "R" und "r" verschieden. Normalisiere den Text zuerst, wenn die Groß- und Kleinschreibung keine Rolle spielen soll:

langs <- c("R", "python", "r", "Python")
print(length(unique(langs)))
print(unique(tolower(langs)))

Ausgabe:

[1] 4
[1] "r"      "python"

unique() funktioniert auch mit Zahlen, und sort(unique(x)) listet die unterschiedlichen Werte in aufsteigender Reihenfolge auf. sum(duplicated(x)) zählt, wie viele Elemente Wiederholungen sind:

rolls <- c(4, 2, 6, 2, 4, 4)
print(sort(unique(rolls)))
print(sum(duplicated(rolls)))

Ausgabe:

[1] 2 4 6
[1] 3
challenge icon

Aufgabe

Einfach

Vervollständige count_distinct(tags). Gib zurück, wie viele verschiedene Tags es gibt, wenn die Groß- und Kleinschreibung ignoriert wird: R und r zählen einmal.

Der bereitgestellte Code liest die Tags als durch Kommas getrennte Zeile ein und gibt die zurückgegebene Anzahl aus.

Probier es selbst

count_distinct <- function(tags) {
  # Schreibe deinen Code hier
  0
}

# Mitgelieferter Ein-/Ausgabe-Code: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
cat(count_distinct(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