Menu
Coddy logo textTech

Testy przynależności

Część sekcji Logika i przepływ sterowania ścieżki R w Coddy. Lekcja 14 z 64.

x %in% set sprawdza każdy element x i zwraca jedną wartość logiczną dla każdego elementu. all() sprawdza, czy każdy wynik jest równy TRUE, a any() — czy przynajmniej jeden jest równy TRUE.

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

Wynik:

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

Użyj indeksu z zanegowanym sprawdzeniem, aby wyświetlić brakujące składniki w kolejności z pierwszego wektora:

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

Wynik:

[1] "milk"  "sugar"

setequal(a, b) sprawdza, czy dwa wektory zawierają te same wartości, ignorując kolejność i powtórzenia:

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

Wynik:

[1] TRUE
[1] FALSE

Dla pustego wektora all() zwraca TRUE, a any() zwraca FALSE: gdy nic nie jest wymagane, niczego nie brakuje.

which() zamienia wektor logiczny na pozycje jego wartości TRUE, co informuje, gdzie znajdują się dopasowania:

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

Wynik:

[1] 1 3
challenge icon

Wyzwanie

Łatwy

Uzupełnij check_recipe(required, pantry). Zwróć ready, gdy każdy wymagany składnik znajduje się w spiżarni. W przeciwnym razie zwróć missing: , a po nim brakujące składniki w kolejności z required, połączone za pomocą , .

Dostarczony kod odczytuje wymagane składniki i zawartość spiżarni z wierszy rozdzielonych przecinkami, a następnie wyświetla zwróconą wartość.

Spróbuj swoich sił

check_recipe <- function(required, pantry) {
  # Napisz tutaj swój kod
  ""
}

# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
input <- suppressWarnings(readLines(file("stdin")))
cat(check_recipe(strsplit(input[1], ",")[[1]], strsplit(input[2], ",")[[1]]), sep = "\n")
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator R online