Menu
Coddy logo textTech

Vektorisierte Logik Teil 1

Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 20 von 78.

R hat zwei Versionen von AND- und OR-Operatoren. Sie haben bereits && und || kennengelernt, die mit Einzelwerten arbeiten. Lassen Sie uns nun ihre vektorisierten Gegenstücke untersuchen: & und | (einzelne Symbole).

Der entscheidende Unterschied besteht darin, dass & und | Werte Element für Element vergleichen, wenn mit mehreren Werten gearbeitet wird:

a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)

a & b   # TRUE FALSE FALSE FALSE
a | b   # TRUE TRUE TRUE FALSE

Jede Position wird unabhängig verglichen. An der ersten Position sind sowohl a als auch b TRUE, daher gibt a & b TRUE zurück. An der zweiten Position ist a TRUE, aber b ist FALSE, daher gibt a & b FALSE zurück.

Dies wird in Kombination mit Vergleichsoperatoren besonders mächtig:

scores <- c(85, 42, 91, 67, 55)

# Prüfen, welche Punktzahlen zwischen 50 und 80 liegen
scores >= 50 & scores <= 80  # FALSE FALSE FALSE TRUE TRUE

Das Ergebnis ist ein Vektor von logischen Werten, der anzeigt, welche Elemente beide Bedingungen erfüllen. Dieses elementweise Verhalten ist essenziell für das Filtern und Analysieren von Daten in R.

challenge icon

Aufgabe

Einfach

Verwenden Sie die vektorisierten AND- (&) und OR- (|) Operatoren, um elementweise Vergleiche auf Vektoren durchzuführen.

Ihnen stehen die folgenden Vektoren zur Verfügung:

temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

Verwenden Sie vektorisierte logische Operatoren, um die folgenden logischen Vektoren zu erstellen:

  1. Erstellen Sie einen Vektor namens comfortable_temp, der TRUE für jede Temperatur speichert, die größer oder gleich 20 UND kleiner oder gleich 30 ist.
  2. Erstellen Sie einen Vektor namens high_humidity, der TRUE für jeden Feuchtigkeitswert speichert, der größer als 70 ist.
  3. Erstellen Sie einen Vektor namens pleasant_day, der TRUE für jeden Tag speichert, an dem die Temperatur zwischen 20 und 30 (einschließlich) liegt UND die Luftfeuchtigkeit kleiner oder gleich 60 ist.
  4. Erstellen Sie einen Vektor namens extreme_weather, der TRUE für jeden Tag speichert, an dem die Temperatur größer als 30 ist ODER die Luftfeuchtigkeit größer als 80 ist.
  5. Erstellen Sie einen Vektor namens stay_inside, der TRUE für jeden Tag speichert, an dem die Temperatur kleiner als 18 ist ODER (die Temperatur größer als 30 ist UND die Luftfeuchtigkeit größer als 70 ist).

Verwenden Sie die print()-Funktion, um comfortable_temp, high_humidity, pleasant_day, extreme_weather und stay_inside in genau dieser Reihenfolge anzuzeigen.

Probier es selbst

# Bereitgestellte Vektoren
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

# TODO: Schreibe deinen Code unten
# 1. Erstelle comfortable_temp: TRUE, wenn temp >= 20 UND temp <= 30

# 2. Erstelle high_humidity: TRUE, wenn humidity > 70

# 3. Erstelle pleasant_day: TRUE, wenn temp zwischen 20-30 liegt UND humidity <= 60

# 4. Erstelle extreme_weather: TRUE, wenn temp > 30 ODER humidity > 80

# 5. Erstelle stay_inside: TRUE, wenn temp < 18 ODER (temp > 30 UND humidity > 70)


# Ergebnisse ausgeben
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen