Menu
Coddy logo textTech

Vektorisierte Logik Teil 1

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

R verfügt über zwei Versionen der 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 ist, 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 besonders mächtig, wenn es mit Vergleichsoperatoren kombiniert wird:

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

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

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

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

Spickzettel

R hat zwei Versionen von AND- und OR-Operatoren:

  • && und || arbeiten mit Einzelwerten
  • & und | sind vektorisierte Operatoren, die Werte Element für Element vergleichen

Die vektorisierten Operatoren & und | vergleichen jede Position unabhängig voneinander:

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

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

Vektorisierte Operatoren sind besonders leistungsfähig, wenn sie mit Vergleichsoperatoren kombiniert werden:

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

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

Das Ergebnis ist ein Vektor aus logischen Werten, der anzeigt, welche Elemente die Bedingungen erfüllen.

Probier es selbst

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

# TODO: Schreiben Sie Ihren Code unten
# 1. Erstellen Sie comfortable_temp: TRUE, wenn temp >= 20 UND temp <= 30

# 2. Erstellen Sie high_humidity: TRUE, wenn humidity > 70

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

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

# 5. Erstellen Sie 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