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 FALSEJede 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 TRUEDas 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.
Aufgabe
EinfachVerwenden 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:
- Erstellen Sie einen Vektor namens
comfortable_temp, derTRUEfür jede Temperatur speichert, die größer oder gleich 20 UND kleiner oder gleich 30 ist. - Erstellen Sie einen Vektor namens
high_humidity, derTRUEfür jeden Feuchtigkeitswert speichert, der größer als 70 ist. - Erstellen Sie einen Vektor namens
pleasant_day, derTRUEfür jeden Tag speichert, an dem die Temperatur zwischen 20 und 30 (einschließlich) liegt UND die Luftfeuchtigkeit kleiner oder gleich 60 ist. - Erstellen Sie einen Vektor namens
extreme_weather, derTRUEfür jeden Tag speichert, an dem die Temperatur größer als 30 ist ODER die Luftfeuchtigkeit größer als 80 ist. - Erstellen Sie einen Vektor namens
stay_inside, derTRUEfü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 FALSEVektorisierte 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 TRUEDas 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)Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren (AND, OR)Logische Operatoren Teil 2 (NOT)Wiederholung – Einfache LogikVektorisierte Logik Teil 1Vektorisierte Logik Teil 27Rechnungs-Split-Rechner
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit einer Besonderheit
SpielübersichtDie FizzBuzz-Funktion13Vektoren für Fortgeschrittene
Vektor-Slicing und IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahl-DatentypZeichen-DatentypLogischer DatentypDatentypen prüfenBenennungskonventionenFehlende Werte: NAZusammenfassung – Variablenerstellung5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Rückblick - FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahlige Division und ModuloZuweisungsoperatorenWiederholung - Einfache MathematikVergleichsoperatoren6Grundlagen der Ein- und Ausgabe
Print-AusgabeCat zur AusgabeAusgabe mit VariablenEingabe lesen mit readline()Grundlagen der TypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder Falsch9Funktionen
Funktionen deklarierenFunktionsargumenteRückgabewerteWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandard-Parameterwerte