Wie in nahezu jeder anderen Pro­gram­mier­spra­che kommen Sie auch in der R-Pro­gram­mie­rung nicht um eine bedingte Aus­füh­rung einzelner Code­blö­cke herum. Mit der If-else-Kon­troll­struk­tur können Sie Be­din­gun­gen for­mu­lie­ren und so die Aus­füh­rung Ihres Programms steuern.

Ein­satz­mög­lich­kei­ten von R-if-else-An­wei­sun­gen

Eine If-else-Anweisung, die häufig auch als bedingte Ver­zwei­gung be­zeich­net wird, sorgt im Code dafür, dass bestimmte An­wei­sungs­blö­cke nur dann aus­ge­führt werden, wenn eine Bedingung zutrifft. Die kon­di­tio­nel­le Funk­tio­na­li­tät von If-else-An­wei­sun­gen ist elementar, weshalb sie aus den meisten Pro­gram­men nicht weg­zu­den­ken sind. Gerade in kom­ple­xe­ren Al­go­rith­men ist die Ver­wen­dung von If-else-Be­din­gun­gen oft notwendig.

Die Nutzung von If-else-State­ments in Ihrem Quellcode ist bei­spiels­wei­se dann praktisch, wenn Sie eine User­ein­ga­be auf einen be­stimm­ten Wert testen möchten. Ver­wen­dung finden R-if-else-Struk­tu­ren aber meist in Ver­bin­dung mit R-For-Loops: Wenn Sie einen be­stimm­ten Wert aus einer Da­ten­struk­tur suchen, können Sie die Schleife mithilfe eines If-State­ments 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. Au­to­ma­ti­sche Backups sorgen dafür, dass Ihre Daten best­mög­lich gegen Verlust geschützt sind.

Syntax der R-if-else-State­ments

Sie können R-if-else-An­wei­sun­gen auf ver­schie­de­ne Arten einsetzen, indem Sie die Schlüs­sel­wör­ter „if“, „else“ und „else if“ auf un­ter­schied­li­che Weisen kom­bi­nie­ren. An der grund­sätz­li­chen Logik ändert sich aber nichts: Die Aus­füh­rung einzelner Code­blö­cke wird immer an eine Bedingung geknüpft.

Auch die Syntax ist strikt fest­ge­legt. Dem Schlüs­sel­wort „if“ folgt immer eine Bedingung, die in runden Klammern spe­zi­fi­ziert wird. Innerhalb der Bedingung werden häufig arith­me­ti­sche oder logische Ver­gleichs­ope­ra­to­ren genutzt. An­schlie­ßend folgt ein Codeblock in ge­schweif­ten Klammern, der nur dann aus­ge­führt wird, wenn die von Ihnen spe­zi­fi­zier­te Bedingung zutrifft. Je nach Zweck Ihrer Anweisung können Sie nun mit dem Schlüs­sel­wort „else“ einen Codeblock einleiten, der aus­ge­führt wird, wenn die If-Bedingung nicht zutrifft. Außerdem haben Sie die Mög­lich­keit, mit dem Schlüs­sel­wort „else if“ weitere Be­din­gun­gen zu for­mu­lie­ren.

Hinweis

Wenn die Code­blö­cke, die Sie ausführen möchten, aus nur einer Zeile Code bestehen, können Sie die ge­schweif­ten Klammern bei R-if-else-State­ments weglassen. Das kann aus Gründen der Le­ser­lich­keit sinnvoll sein. Für An­fän­ge­rin­nen und Anfänger, die gerade erst Pro­gram­mie­ren lernen, ist es jedoch ratsam, die Klammern stan­dard­mä­ßig zu setzen. So kann nichts schief­ge­hen.

R-if-Anweisung

Wenn Sie eine bestimmte bedingte Aktion in Ihrem Code ausführen und ansonsten mit der stan­dard­mä­ßi­gen Aus­füh­rung Ihres Programms fort­fah­ren 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 Code­bei­spiel soll die Zahl, die in der Variable b ge­spei­chert ist, durch die Zahl in Variable a dividiert werden. Da eine Division durch 0 be­kann­ter­ma­ßen nicht erlaubt ist, wird in der If-Bedingung überprüft, ob der in a ge­spei­cher­te Wert eine 0 ist. Nur, wenn diese Bedingung zutrifft, führt das Programm den Code in ge­schweif­ten Klammern aus, in dem die Aus­füh­rung gestoppt wird.

R-if-else-Anweisung

Wenn Sie abhängig von einer un­er­füll­ten Bedingung Code­blö­cke ausführen möchten, können Sie eine If-else-Anweisung nutzen. Wie im vor­he­ri­gen Fall wird zunächst eine If-Bedingung for­mu­liert. Trifft diese nicht zu, springt Ihr Programm ebenfalls in einen Codeblock, der eigens für diesen Fall ge­schrie­ben wurde. Auch hier hilft zur Ver­an­schau­li­chung 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 ganz­zah­li­ge Werte be­inhal­ten. In der If-Bedingung wird geprüft, ob der Wert b kleiner als a ist. Falls ja, wird der An­wei­sungs­block innerhalb der ge­schweif­ten Klammern aus­ge­führt. Wenn nicht, springt das Programm direkt zum An­wei­sungs­block hinter dem Schlüs­sel­wort „else“ und führt die dort ent­hal­te­nen Code­zei­len aus.

R-else-if-Statement

In manchen Fällen möchten Sie nicht nur eine, sondern gleich mehrere Be­din­gun­gen über­prü­fen. Hierfür können Sie das Schlüs­sel­wort „else if“ verwenden. Wenn Sie sich mit Python-if-else-State­ments auskennen, ist Ihnen das Else-if-Statement aus R viel­leicht bereits unter dem Schlüs­sel­wort „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 Code­bei­spiel un­ter­schei­det sich kaum vom vor­he­ri­gen. 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“ spe­zi­fi­zier­ten Be­din­gun­gen sich ge­gen­sei­tig aus­schlie­ßen. Wenn, wie in unserem Fall, die erste Bedingung bereits zutrifft, wird der Code, der mit „else if“ ein­ge­lei­tet wird, gar nicht erst aus­ge­führt. Im Vergleich zu mehreren einfachen If-An­wei­sun­gen sparen Sie durch die Anwendung von Else-if-State­ments also Re­chen­leis­tung.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive
Zum Hauptmenü