Über Vektorelemente iterieren
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.
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 27Rechner zum Teilen der Rechnung
BegrüßungsnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion13Fortgeschrittene Vektoren
Vektor-Slicing und -IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahliger DatentypZeichen-DatentypLogischer DatentypDatentypen überprüfenNamenskonventionenFehlende Werte: NAZusammenfassung – Variablen erstellen5Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Wiederholung – FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenWiederholung – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahldivision und ModuloZuweisungsoperatorenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit printcat zur AusgabeAusgabe mit VariablenEingaben mit readline() lesenGrundlagen der TypkonvertierungRückblick – AltersrechnerRückblick – Wahr oder falsch9Funktionen
Eine Funktion deklarierenFunktionsargumenteRückgabewerteWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardparameterwerte12Über Sequenzen iterieren
Über Vektorelemente iterierenseq_along() verwendenZeichen iterieren (strsplitFunktionen zur String-ManipulationÜbe selbstständig: Online-R-Compiler