If-Bedingung

Der if-Ausdruck wird dann genutzt, wenn man einen Befehl unter bestimmten Bedingungen ausführen möchte. Dabei wird eine Bedingung (condition) überprüft und sofern diese zutrifft (TRUE), wird die angegebene Operation durchgeführt.

Die Logik des einfachen if-Ausdrucks ist im Schaubild dargestellt:

Logik der If-Bedingung
Logik der If-Bedingung

Nehmen wir folgendes Beispiel: Wir haben die Studienmotivation eines Studierenden und möchten (ein Vektor mot mit einem einzigen Wert), sofern dieser auf der Skala (\(0\)-\(10\)) einen Wert größer gleich \(7\) angegeben hat, die Bemerkung sehr motiviert ausgeben.

mot <- 9

if (mot >= 7) {
  print("sehr motiviert")
}

Der einfache if-Ausdruck folgt also einem ganz klaren Muster:

  1. es wird if aufgerufen und in Klammern die Bedingung gesetzt: if (mot >= 7)

  2. in geschweiften Klammern folgen die Anweisungen, die ausgeführt werden sollen, wenn die Bedingung zutrifft:{ print("sehr motiviert") }

Der einfache if-Ausdruck kann also ganz leicht umgesetzt werden.

If-Else-Ausdruck

Neben dem einfachen if-Ausdruck gibt es auch noch die else if-Ausdrücke, mit denen man weitere Bedingungen prüfen kann, falls die vorherige Bedingung nicht zutrifft. Hier durchläuft der Prüfprozess also mehrere Bedingungen. Dies ist im Schaubild dargestellt:

Logik der If-Bedingung
Logik der If-Bedingung

Für einen weiteren Fall eines Studierenden, der auf der Motivation nur \(5\) angegeben hat, könnten wir folgende else if-Ausdruck schreiben:

mot <- 5

if (mot >= 7) {
  print("sehr motiviert")
} else if (mot >= 4 & mot < 7) {
  print("motiviert")
}

Das heißt, die einfache if-Syntax wird hier nur um folgende Punkte ergänzt:

  1. eine weitere Anweisung, die mit else if eine weitere Bedingung prüft: else if (mot >= 4 & mot < 7)

  2. einen weiteren Anweisungsblock für die weitere Bedingung: { print("motiviert")}

Auch dies ist also sehr leicht umzusetzen. Wichtig ist hierbei: Die zweite Bedingung wird nur geprüft, falls die erste Bedingung FALSE ist. Man kann beliebig viele else if-Prüfungen programmieren. Nehmen wir ein weiteres Beispiel:

mot <- 3

if (mot >= 7) {
  print("sehr motiviert")
} else if (mot >= 4 & mot < 7) {
  print("motiviert")
} else if (mot >= 0 & mot < 4) {
  print("nicht motiviert")
}

Das einzige, was wir hier verändert haben, ist dass wir eine dritte Prüfbedingung hinzugefügt haben. Wie zuvor wird diese dritte Bedingung erst geprüft, wenn die erste und die zweite Bedingung beide FALSE sind. else if-Ausdrücke haben also eine hierarchische Struktur.

Else-Ausdruck

Man kann auch dichotome Entscheidungen treffen. Nehmen wir an, wir möchten nur nach motiviert und nicht motiviert unterscheiden und entscheiden uns, Personen, die einen Wert über \(7\) angegeben haben, als motiviert zu bewerten und Personen mit niedrigeren Skalenwerten als nicht motiviert. Wir prüfen hier nur die Bedingung, ob der Wert größer \(7\) ist. Falls dies nicht zutrifft, entscheiden wir mit else (in allen anderen Fällen), dass nicht motiviert ausgegeben wird. Else beinhaltet also eine Anweisung, die ausgeführt wird für alle Fälle, auf denen die zuvor genannte if-Bedingung nicht zutrifft (also FALSE ergibt).

mot <- 5

if (mot >= 7) {
  print("sehr motiviert")
} else {
  print("nicht motiviert")
}

Auch hier ist der Aufbau recht einfach:

  1. wir fügen nach der if-Bedingung mit else eine weitere Anweisung hinzu, die aber keine Bedingung mehr hat: else. Zur Erinnerung: Bei else ist die Bedingung inhärent, da es alle FALSE-Fälle der vorigen Bedingung beinhaltet.

  2. Wir geben auch hier wieder in geschweiften Klammern die Anweisung an: { print("nicht motiviert)}

Das war’s!

Dies waren einfache Beispiele von if und else if-Ausdrücken. In der Regel werden diese aber innerhalb von Schleifen genutzt (z.B. wenn man Entscheidungen für alle Beobachtungen innerhalb eines Datensatzes treffen möchte). Dies wird auf der nächsten Seite gezeigt.