Menu
Coddy logo textTech

Zugehörigkeitstests

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

x %in% set prüft jedes Element von x und gibt einen logischen Wert pro Element zurück. all() fragt, ob jede Prüfung TRUE ist, any(), ob mindestens eine es ist.

required <- c("flour", "eggs", "milk")
pantry <- c("eggs", "salt", "flour")
print(required %in% pantry)
print(all(required %in% pantry))
print(any(required %in% pantry))

Ausgabe:

[1]  TRUE  TRUE FALSE
[1] FALSE
[1] TRUE

Mit der negierten Prüfung indizieren, um in der Reihenfolge des ersten Vektors aufzulisten, was fehlt:

required <- c("flour", "eggs", "milk", "sugar")
pantry <- c("eggs", "flour")
missing <- required[!(required %in% pantry)]
print(missing)

Ausgabe:

[1] "milk"  "sugar"

setequal(a, b) prüft, ob zwei Vektoren dieselben Werte enthalten, wobei Reihenfolge und Wiederholungen ignoriert werden:

print(setequal(c("a", "b"), c("b", "a", "a")))
print(setequal(c("a", "b"), c("a", "c")))

Ausgabe:

[1] TRUE
[1] FALSE

Bei einem leeren Vektor ist all() TRUE und any() FALSE: Wenn nichts erforderlich ist, fehlt nichts.

which() wandelt einen logischen Vektor in die Positionen seiner TRUE-Werte um, wodurch angezeigt wird, wo sich die Übereinstimmungen befinden:

required <- c("flour", "eggs", "milk")
pantry <- c("eggs")
print(which(!(required %in% pantry)))

Ausgabe:

[1] 1 3
challenge icon

Aufgabe

Einfach

Vervollständige check_recipe(required, pantry). Gib ready zurück, wenn jede erforderliche Zutat in der Vorratskammer vorhanden ist. Gib andernfalls missing: gefolgt von den fehlenden Zutaten in der Reihenfolge von required, verbunden mit , , zurück.

Der bereitgestellte Code liest die erforderlichen Zutaten und die Vorratskammer als durch Kommas getrennte Zeilen ein und gibt den zurückgegebenen Wert aus.

Probier es selbst

check_recipe <- function(required, pantry) {
  # Schreibe deinen Code hier
  ""
}

# Mitgelieferter Ein-/Ausgabe-Code: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
cat(check_recipe(strsplit(input[1], ",")[[1]], strsplit(input[2], ",")[[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