Lektionen des Moduls (2/2)
Bedingungen und Schleifen
Um komplexe Algorithmen und Abläufe in R zu implementieren, müssen Sie steuern können, welche Anweisungen ausgeführt und wie oft sie wiederholt werden.
Bedingte Anweisungen
In R basiert die grundlegende bedingte Struktur auf if und else. Die Syntax ähnelt stark der von Sprachen wie JavaScript oder C:
score <- 85
if (score >= 60) {
print("Superato!")
} else {
print("Non superato.")
}
Die geschweiften Klammern {} begrenzen die Codeblöcke, die je nach Ergebnis des booleschen Ausdrucks in runden Klammern ausgeführt werden sollen.
Die for-Schleife
Die for-Schleife in R wird verwendet, um über Elemente einer Sequenz (wie einen Vektor oder eine Liste) zu iterieren.
# Gibt die Zahlen von 1 bis 3 aus
for (i in 1:3) {
print(i)
}
In R ist die Syntax 1:3 eine Abkürzung zur Erstellung des Vektors c(1, 2, 3).
Wir können auch direkt die Elemente eines vorhandenen Vektors durchlaufen:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}
Die Funktion ifelse
In R ist die Funktion ifelse() eine vektorisierte Version des if-else-Konstrukts. Sie ermöglicht es, eine Bedingung in einer einzigen Operation auf einen gesamten Vektor anzuwenden, und gibt einen Vektor von Ergebnissen zurück.
scores <- c(55, 80, 45, 90)
# Wenn score >= 60 weise "Pass" zu, andernfalls "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"
Die while-Schleife
Die while-Schleife wird verwendet, um einen Codeblock so lange zu wiederholen, wie eine bestimmte Bedingung wahr (TRUE) bleibt. Es ist wichtig sicherzustellen, dass die Bedingung irgendwann falsch wird, um Endlosschleifen zu vermeiden.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}
Probier es aus
Schreibe eine bedingte if-else-Struktur, die prüft, ob die Variable score größer oder gleich 60 ist. Wenn ja, setze status auf 'Pass', andernfalls auf 'Fail'.
Hinweis anzeigen
Prüfe score >= 60 und weise status <- 'Pass' oder status <- 'Fail' zu
Lösung nach 3 Versuchen verfügbar
Schreibe eine for-Schleife, die über die Sequenz 1:5 iteriert und jeden Wert mit der Funktion print() ausgibt.
Hinweis anzeigen
Verwende die Syntax: for (i in 1:5) { print(i) }
Lösung nach 3 Versuchen verfügbar
Schreibe für den gegebenen Vektor v eine for-Schleife, die über jedes Element iteriert und dessen doppelten Wert (val * 2) mit print() ausgibt.
Hinweis anzeigen
Durchlaufe die Elemente von v: for (val in v) { print(val * 2) }
Lösung nach 3 Versuchen verfügbar
Verwende für den gegebenen Vektor scores die Funktion ifelse(), um zu prüfen, welche Elemente größer oder gleich 60 sind. Speichere das Ergebnis (das für jedes Element 'Pass' oder 'Fail' enthält) in der Variable results.
Hinweis anzeigen
Verwende die Funktion: results <- ifelse(scores >= 60, 'Pass', 'Fail')
Lösung nach 3 Versuchen verfügbar
Verwende eine while-Schleife, um den Wert von x so lange zu verdoppeln, bis er 50 überschreitet. Erhöhe bei jeder Iteration auch die Variable counter.
Hinweis anzeigen
Verwende eine while-Schleife (x <= 50) und aktualisiere sowohl x als auch counter innerhalb der geschweiften Klammern.
Lösung nach 3 Versuchen verfügbar