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] TRUEMit 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] FALSEBei 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 3Aufgabe
EinfachVervollstä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")
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
1Strings im Detail
Teilstrings mit substr()Formatierung mit sprintf()Aufteilen und VerbindenStrings durchsuchenText ersetzenWiederholung – Benutzernamen-Generator4Matrizen
Matrizen erstellenMatrizen indizierenZusammenfassungen von Zeilen und SpaltenMatrizenarithmetikRückblick – Sitzplan10Fortgeschrittener Kontrollfluss
Die switch()-FunktionVektorisierter ifelse()repeat und breakRekursive FunktionenRückblick – Notenklassifizierung2Schlüssel-Wert-Suchen
Benannte Vektor-SuchenSchlüssel prüfenSchlüssel hinzufügen und entfernenNamen durchlaufenRückblick – Aktienübersicht5Projekt – Notenbuch
Schüler hinzufügenNoten eintragen3Mengen und Zählen
Eindeutige WerteMengenoperationenZugehörigkeitstestsZählen mit table()Rückblick – Gäste einer Veranstaltung6Funktionen als Werte
Anonyme FunktionenFunktionen übergebenFunktionen zurückgebenClosures mit ZustandRückblick – Rabattregeln9Datenrahmen
Datenrahmen erstellenSpalten und ZeilenZeilen filternHinzufügen und SortierenZusammenfassung – Verkaufsbericht12Projekt – Ausgaben-Tracker
Ausgaben erfassenGesamtausgabenÜbe selbstständig: Online-R-Compiler