Logika wektoryzowana, część 1
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 20 z 78.
R ma dwie wersje operatorów AND i OR. Poznałeś już && i ||, które działają na pojedynczych wartościach. Teraz poznajmy ich zwektoryzowane odpowiedniki: & i | (pojedyncze symbole).
Kluczowa różnica polega na tym, że & i | porównują wartości element po elemencie podczas pracy z wieloma wartościami:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSEKażda pozycja jest porównywana niezależnie. Na pierwszej pozycji zarówno a, jak i b mają wartość TRUE, więc a & b zwraca TRUE. Na drugiej pozycji a ma wartość TRUE, ale b ma wartość FALSE, więc a & b zwraca FALSE.
To staje się potężne w połączeniu z operatorami porównania:
scores <- c(85, 42, 91, 67, 55)
# Sprawdź, które wyniki mieszczą się między 50 a 80
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUEWynikiem jest wektor wartości logicznych wskazujący, które elementy spełniają oba warunki. To działanie element po elemencie jest niezbędne do filtrowania i analizowania danych w R.
Wyzwanie
ŁatwyUżyj zwektoryzowanych operatorów AND (&) i OR (|), aby wykonywać porównania element po elemencie na tablicach.
Otrzymujesz następujące tablice:
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)Użyj zwektoryzowanych operatorów logicznych, aby utworzyć następujące tablice logiczne:
- Utwórz tablicę o nazwie
comfortable_temp, która przechowujeTRUEdla każdej temperatury większej lub równej 20 AND mniejszej lub równej 30 - Utwórz tablicę o nazwie
high_humidity, która przechowujeTRUEdla każdej wartości wilgotności większej niż 70 - Utwórz tablicę o nazwie
pleasant_day, która przechowujeTRUEdla każdego dnia, w którym temperatura mieści się w przedziale od 20 do 30 (włącznie) AND wilgotność jest mniejsza lub równa 60 - Utwórz tablicę o nazwie
extreme_weather, która przechowujeTRUEdla każdego dnia, w którym temperatura jest większa niż 30 OR wilgotność jest większa niż 80 - Utwórz tablicę o nazwie
stay_inside, która przechowujeTRUEdla każdego dnia, w którym temperatura jest mniejsza niż 18 OR (temperatura jest większa niż 30 AND wilgotność jest większa niż 70)
Użyj funkcji print(), aby wyświetlić comfortable_temp, high_humidity, pleasant_day, extreme_weather i stay_inside, dokładnie w tej kolejności.
Spróbuj swoich sił
# Podane wektory
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)
# TODO: Napisz swój kod poniżej
# 1. Utwórz comfortable_temp: TRUE, gdy temp >= 20 AND temp <= 30
# 2. Utwórz high_humidity: TRUE, gdy humidity > 70
# 3. Utwórz pleasant_day: TRUE, gdy temp mieści się w zakresie 20-30 AND humidity <= 60
# 4. Utwórz extreme_weather: TRUE, gdy temp > 30 OR humidity > 80
# 5. Utwórz stay_inside: TRUE, gdy temp < 18 OR (temp > 30 AND humidity > 70)
# Wyświetl wyniki
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online