R-if-else-Anweisungen: So funktionieren Bedingungen in R

Wie in nahezu jeder anderen Programmiersprache kommen Sie auch in der R-Programmierung nicht um eine bedingte Ausführung einzelner Codeblöcke herum. Mit der If-else-Kontrollstruktur können Sie Bedingungen formulieren und so die Ausführung Ihres Programms steuern.

Einsatzmöglichkeiten von R-if-else-Anweisungen

Eine If-else-Anweisung, die häufig auch als bedingte Verzweigung bezeichnet wird, sorgt im Code dafür, dass bestimmte Anweisungsblöcke nur dann ausgeführt werden, wenn eine Bedingung zutrifft. Die konditionelle Funktionalität von If-else-Anweisungen ist elementar, weshalb sie aus den meisten Programmen nicht wegzudenken sind. Gerade in komplexeren Algorithmen ist die Verwendung von If-else-Bedingungen oft notwendig.

Die Nutzung von If-else-Statements in Ihrem Quellcode ist beispielsweise dann praktisch, wenn Sie eine Usereingabe auf einen bestimmten Wert testen möchten. Verwendung finden R-if-else-Strukturen aber meist in Verbindung mit R-For-Loops: Wenn Sie einen bestimmten Wert aus einer Datenstruktur suchen, können Sie die Schleife mithilfe eines If-Statements direkt abbrechen, sobald sie ihn gefunden haben.

Tipp

Wenn Sie Ihre eigenen Projekte und Programme an einem sicheren Ort verwahren möchten, ist der Webspace von IONOS eine gute Idee. Automatische Backups sorgen dafür, dass Ihre Daten bestmöglich gegen Verlust geschützt sind.

Syntax der R-if-else-Statements

Sie können R-if-else-Anweisungen auf verschiedene Arten einsetzen, indem Sie die Schlüsselwörter „if“, „else“ und „else if“ auf unterschiedliche Weisen kombinieren. An der grundsätzlichen Logik ändert sich aber nichts: Die Ausführung einzelner Codeblöcke wird immer an eine Bedingung geknüpft.

Auch die Syntax ist strikt festgelegt. Dem Schlüsselwort „if“ folgt immer eine Bedingung, die in runden Klammern spezifiziert wird. Innerhalb der Bedingung werden häufig arithmetische oder logische Vergleichsoperatoren genutzt. Anschließend folgt ein Codeblock in geschweiften Klammern, der nur dann ausgeführt wird, wenn die von Ihnen spezifizierte Bedingung zutrifft. Je nach Zweck Ihrer Anweisung können Sie nun mit dem Schlüsselwort „else“ einen Codeblock einleiten, der ausgeführt wird, wenn die If-Bedingung nicht zutrifft. Außerdem haben Sie die Möglichkeit, mit dem Schlüsselwort „else if“ weitere Bedingungen zu formulieren.

Hinweis

Wenn die Codeblöcke, die Sie ausführen möchten, aus nur einer Zeile Code bestehen, können Sie die geschweiften Klammern bei R-if-else-Statements weglassen. Das kann aus Gründen der Leserlichkeit sinnvoll sein. Für Anfängerinnen und Anfänger, die gerade erst Programmieren lernen, ist es jedoch ratsam, die Klammern standardmäßig zu setzen. So kann nichts schiefgehen.

R-if-Anweisung

Wenn Sie eine bestimmte bedingte Aktion in Ihrem Code ausführen und ansonsten mit der standardmäßigen Ausführung Ihres Programms fortfahren möchten, reicht es aus, eine einzige R-if-Anweisung zu nutzen.

a <- 0
b <- 40
if (a == 0) {
	print("Zero division not allowed")
stop()
}
c <- b / a

Im obigen Codebeispiel soll die Zahl, die in der Variable b gespeichert ist, durch die Zahl in Variable a dividiert werden. Da eine Division durch 0 bekanntermaßen nicht erlaubt ist, wird in der If-Bedingung überprüft, ob der in a gespeicherte Wert eine 0 ist. Nur, wenn diese Bedingung zutrifft, führt das Programm den Code in geschweiften Klammern aus, in dem die Ausführung gestoppt wird.

R-if-else-Anweisung

Wenn Sie abhängig von einer unerfüllten Bedingung Codeblöcke ausführen möchten, können Sie eine If-else-Anweisung nutzen. Wie im vorherigen Fall wird zunächst eine If-Bedingung formuliert. Trifft diese nicht zu, springt Ihr Programm ebenfalls in einen Codeblock, der eigens für diesen Fall geschrieben wurde. Auch hier hilft zur Veranschaulichung ein Beispiel:

a <- 4
b <- 2
if (b < a) {
	print("a is greater than b")
}
else {
	print("a and b are equal or b is greater than a")
}

Es werden erneut zwei Variablen a und b erstellt, die ganzzahlige Werte beinhalten. In der If-Bedingung wird geprüft, ob der Wert b kleiner als a ist. Falls ja, wird der Anweisungsblock innerhalb der geschweiften Klammern ausgeführt. Wenn nicht, springt das Programm direkt zum Anweisungsblock hinter dem Schlüsselwort „else“ und führt die dort enthaltenen Codezeilen aus.

R-else-if-Statement

In manchen Fällen möchten Sie nicht nur eine, sondern gleich mehrere Bedingungen überprüfen. Hierfür können Sie das Schlüsselwort „else if“ verwenden. Wenn Sie sich mit Python-if-else-Statements auskennen, ist Ihnen das Else-if-Statement aus R vielleicht bereits unter dem Schlüsselwort „elif“ bekannt.

a <- 4
b <- 2
if (b < a) {
	print("a is greater than b")
}
else if (b > a) {
	print("b is greater than a")
}

Das Codebeispiel unterscheidet sich kaum vom vorherigen. Es wurde lediglich die Else-Anweisung durch eine Else-if-Anweisung ersetzt. Wie bei der If-Anweisung muss hinter der Else-if-Anweisung eine Bedingung in runden Klammern gesetzt werden.

Beachten Sie, dass die mit „else if“ spezifizierten Bedingungen sich gegenseitig ausschließen. Wenn, wie in unserem Fall, die erste Bedingung bereits zutrifft, wird der Code, der mit „else if“ eingeleitet wird, gar nicht erst ausgeführt. Im Vergleich zu mehreren einfachen If-Anweisungen sparen Sie durch die Anwendung von Else-if-Statements also Rechenleistung.

Günstige Webhosting-Pakete von IONOS!

Vertrauen Sie auf flexibel skalierbares und zuverlässiges Webhosting inklusive persönlichem Berater mit IONOS!

Kostenlose Domain
SSL Zertifikat
DDoS-Schutz