5  Schlaufen und Funktionen

Autor:in

Lukas Batschelet

Veröffentlichungsdatum

5. Februar 2025

6 Schlaufen und Funktionen

6.1 if() und else()

Mit if() und else() können Bedingungen in R überprüft und entsprechende Aktionen ausgeführt werden. Die Syntax ist wie folgt:

if (Bedingung) {
  # Aktion, wenn die Bedingung TRUE ist
} else {
  # Aktion, wenn die Bedingung FALSE ist
}

Zum Beispiel:

x <- 10
if (x > 5) {
  print(paste(x, "ist grösser als 5"))
} else {
  print("x ist kleiner oder gleich 5")
}
[1] "10 ist grösser als 5"

Hier verwenden wir zusätzlich die Funktion paste(), um Text und Variablen zu kombinieren. Dies ist ohne nicht direkt möglich.

6.1.1 ifelse() als Vektoroperation

ifelse() ist eine Funktion, die eine Bedingung auf einen Vektor anwendet und basierend auf der Bedingung Werte zurückgibt. Die Syntax ist wie folgt:

ifelse(Bedingung, Wert_wenn_TRUE, Wert_wenn_FALSE)

Zum Beispiel:

vectorA <- c(1, 2, 3, 4, 5)
ifelse(vectorA == 3, "Drei", "Nicht Drei")
[1] "Nicht Drei" "Nicht Drei" "Drei"       "Nicht Drei" "Nicht Drei"

6.2 Schleifen

Schleifen sind nützlich, um eine bestimmte Aktion mehrmals auszuführen. In R gibt es verschiedene Arten von Schleifen, darunter for, while und repeat.

6.2.1 for Schleife

Die for Schleife wird verwendet, um eine Aktion für jedes Element in einer Sequenz auszuführen. Die Syntax ist wie folgt:

for (Element in Sequenz) {
  # Aktion, die für jedes Element ausgeführt wird
}

Zum Beispiel:

for (i in 1:5) {
  print(i)
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

Schleifen mit Laufindex

Laufindexe können in R auch ausserhalb der Schleife definiert werden. Zum Beispiel:

original_vector <- c(1, 2, 3, 4, 5)
result_vector <- vector() # Leerer Vektor für das Ergebnis

# Laufindex definieren
j <- 1

for (i in original_vector) {
  result_vector[j] <- i * 2
  j <- j + 1
}

result_vector
[1]  2  4  6  8 10

Bemerkung: aus Python kennen wir j++ oder j += 1 um den Laufindex zu erhöhen. In R gibt es keinen solchen Shortcut.

6.3 Eigene Funktionen

Funktionen sind nützlich, um wiederkehrende Aktionen zu kapseln und zu abstrahieren. In R können eigene Funktionen mit dem function Schlüsselwort definiert werden. Die Syntax ist wie folgt:

funktion_name <- function(Parameter1, Parameter2, ...) {
  # Aktionen, die die Funktion ausführt
  return(Ergebnis)
}

Zum Beispiel:

Wir schreiben eine Funktion, die die Summe der Quadrate von zwei Zahlen berechnet.

summe_quadrate <- function(x, y) {
  summe <- x^2 + y^2
  return(summe)
}

Die Funktion kann dann wie folgt aufgerufen werden:

summe_quadrate(3, 4)
[1] 25