Vektoroperationen
Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 59 von 78.
Eine der leistungsfähigsten Funktionen von R ist die Fähigkeit, Operationen auf ganzen Vektoren gleichzeitig auszuführen, ohne jedes einzelne Element in einer Schleife durchlaufen zu müssen. Dies macht Ihren Code sowohl sauberer als auch effizienter.
Wenn Sie einen arithmetischen Operator auf einen Vektor anwenden, führt R die Operation für jedes Element aus:
prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)Ausgabe:
[1] 9.0 22.5 13.5 27.0Sie können auch Operationen zwischen zwei Vektoren der gleichen Länge durchführen. R bildet Paare aus den entsprechenden Elementen:
quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)Ausgabe:
[1] 20 25 60 90R bietet nützliche integrierte Funktionen für gängige Vektorberechnungen wie sum(), mean(), min() und max():
scores <- c(85, 92, 78, 95, 88)
print(sum(scores))
print(mean(scores))
print(min(scores))
print(max(scores))Ausgabe:
[1] 438
[1] 87.6
[1] 78
[1] 95Aufgabe
EinfachIhnen werden die folgenden Vektoren zur Verfügung gestellt:
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)Führen Sie die folgenden Operationen aus und geben Sie jedes Ergebnis aus:
- Berechnen Sie den täglichen Verdienst für jeden Tag, indem Sie
hours_workedmithourly_ratemultiplizieren (elementweise). Geben Sie diesen Vektor aus. - Wenden Sie einen Bonus von 10 % auf alle täglichen Verdienste an (multiplizieren Sie mit
1.1). Geben Sie den aktualisierten Verdienstvektor aus. - Geben Sie den Gesamtverdienst für die Woche mit
sum()aus. - Geben Sie den durchschnittlichen täglichen Verdienst mit
mean()aus. - Geben Sie den höchsten Einzelverdienst eines Tages mit
max()aus. - Geben Sie den niedrigsten Einzelverdienst eines Tages mit
min()aus.
Ihre Ausgabe sollte wie folgt aussehen:
[1] 120 140 162 132 136
[1] 132.0 154.0 178.2 145.2 149.6
[1] 759
[1] 151.8
[1] 178.2
[1] 132Spickzettel
R führt Operationen auf ganzen Vektoren gleichzeitig aus, ohne dass Schleifen erforderlich sind.
Das Anwenden eines arithmetischen Operators auf einen Vektor führt die Operation für jedes Element aus:
prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)
# [1] 9.0 22.5 13.5 27.0Operationen zwischen zwei Vektoren der gleichen Länge verknüpfen die entsprechenden Elemente:
quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)
# [1] 20 25 60 90Gängige integrierte Funktionen für Vektorberechnungen:
scores <- c(85, 92, 78, 95, 88)
sum(scores) # [1] 438
mean(scores) # [1] 87.6
min(scores) # [1] 78
max(scores) # [1] 95Probier es selbst
# Gegebene Vektoren
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)
# TODO: Schreiben Sie Ihren Code unten
# 1. Täglichen Verdienst berechnen (elementweise Multiplikation)
# 2. 10 % Bonus auf den täglichen Verdienst anwenden
# 3. Gesamtverdienst für die Woche mit sum() ausgeben
# 4. Durchschnittlichen täglichen Verdienst mit mean() ausgeben
# 5. Höchsten Tagesverdienst mit max() ausgeben
# 6. Niedrigsten Tagesverdienst mit min() ausgebenDiese 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