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] TRUEUż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] FALSEDla 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 3Wyzwanie
ŁatwyUzupeł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")
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
1Łańcuchy znaków w szczegółach
Podciągi za pomocą substr()Formatowanie za pomocą sprintf()Dzielenie i łączenieWyszukiwanie w łańcuchach znakówZastępowanie tekstuPowtórka – kreator nazwy użytkownika4Macierze
Tworzenie macierzyIndeksowanie macierzyPodsumowania wierszy i kolumnDziałania na macierzachPowtórka – plan miejsc10Zaawansowane sterowanie przepływem
Funkcja switch()Wektorowe ifelse()repeat i breakFunkcje rekurencyjnePodsumowanie — klasyfikator ocen2Wyszukiwanie wartości po kluczach
Wyszukiwanie nazwanych elementów wektoraSprawdzanie kluczyDodawanie i usuwanie kluczyIterowanie po nazwachPowtórzenie — giełda5Projekt — dziennik ocen
Dodawanie uczniówZapisywanie ocen3Zbiory i zliczanie
Unikalne wartościOperacje na zbiorachTesty przynależnościZliczanie za pomocą table()Podsumowanie — goście wydarzenia6Funkcje jako wartości
Funkcje anonimowePrzekazywanie funkcjiZwracanie funkcjiDomknięcia ze stanemPowtórka — reguły rabatowe9Ramki danych
Tworzenie ramek danychKolumny i wierszeFiltrowanie wierszyDodawanie i sortowaniePodsumowanie – raport sprzedaży12Projekt – śledzenie wydatków
Rejestrowanie wydatkówŁączne wydatkiPoćwicz samodzielnie: Kompilator R online