Iterieren über Vektorelemente
Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 63 von 78.
Während die vektorisierten Operationen von R leistungsstark sind, müssen Sie manchmal jedes Element einzeln mit benutzerdefinierter Logik verarbeiten. Eine for-Schleife ermöglicht es Ihnen, die Vektorelemente nacheinander zu durchlaufen.
Der einfachste Weg, einen Vektor zu durchlaufen, ist die direkte Iteration über seine Elemente:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Ausgabe:
[1] "apple"
[1] "banana"
[1] "cherry"In jeder Iteration nimmt die Schleifenvariable fruit den Wert des nächsten Elements im Vektor an. Dieser Ansatz ist sauber und lesbar, wenn Sie nur die Werte selbst benötigen.
Sie können Iterationen mit bedingter Logik kombinieren, um Elemente selektiv zu verarbeiten:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Ausgabe:
[1] 8
[1] 10Dieses Muster ist nützlich, wenn Sie verschiedene Operationen basierend auf dem Wert jedes Elements anwenden müssen – etwas, das vektorisierte Operationen allein nicht immer bewältigen können.
Aufgabe
EinfachSie erhalten zwei Eingabezeilen:
- Eine durch Kommas getrennte Liste von Zahlen (z. B.
12,5,18,3,25,8,14) - Ein Schwellenwert (z. B.
10)
Verwenden Sie eine for-Schleife, um über die Vektorelemente zu iterieren:
- Erstellen Sie einen Vektor aus den durch Kommas getrennten Zahlen
- Iterieren Sie durch jedes Element im Vektor
- Für jedes Element, das größer oder gleich dem Schwellenwert ist, geben Sie dieses Element mit
print()aus
Wenn die Eingaben beispielsweise wie folgt lauten:
4,15,8,22,6,19,11
10Sollte die Ausgabe wie folgt aussehen:
[1] 15
[1] 22
[1] 19
[1] 11Erklärung: Die Schleife prüft jedes Element gegen den Schwellenwert (10). Die Elemente 15, 22, 19 und 11 sind alle größer oder gleich 10 und werden daher ausgegeben. Die Elemente 4, 8 und 6 werden übersprungen.
Spickzettel
Eine for-Schleife ermöglicht es Ihnen, nacheinander durch Vektorelemente zu iterieren und auf jedes Element eine benutzerdefinierte Logik anzuwenden.
Grundlegende Syntax für das Durchlaufen eines Vektors:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}In jeder Iteration nimmt die Schleifenvariable den Wert des nächsten Elements im Vektor an.
Kombination von Schleifen mit bedingter Logik, um Elemente selektiv zu verarbeiten:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Dieses Muster ist nützlich, wenn Sie verschiedene Operationen basierend auf dem Wert jedes Elements anwenden müssen.
Probier es selbst
# Eingabe lesen
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# Kommagetrennte Zeichenkette in numerischen Vektor umwandeln
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))
# TODO: Schreiben Sie Ihren Code unten
# Verwenden Sie eine for-Schleife, um den numbers-Vektor zu durchlaufen
# Für jedes Element >= threshold, geben Sie es mit print() ausDiese 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-Parameterwerte12Iterieren über Sequenzen
Iterieren über VektorelementeVerwendung von seq_along()Iterieren über Zeichen (strsplit)String-Manipulationsfunktionen