Menu
Coddy logo textTech

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 FALSE

Każ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 TRUE

Wynikiem 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.

challenge icon

Wyzwanie

Łatwy

Uż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:

  1. Utwórz tablicę o nazwie comfortable_temp, która przechowuje TRUE dla każdej temperatury większej lub równej 20 AND mniejszej lub równej 30
  2. Utwórz tablicę o nazwie high_humidity, która przechowuje TRUE dla każdej wartości wilgotności większej niż 70
  3. Utwórz tablicę o nazwie pleasant_day, która przechowuje TRUE dla 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
  4. Utwórz tablicę o nazwie extreme_weather, która przechowuje TRUE dla każdego dnia, w którym temperatura jest większa niż 30 OR wilgotność jest większa niż 80
  5. Utwórz tablicę o nazwie stay_inside, która przechowuje TRUE dla 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)
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online