R ist eine Pro­gram­mier­spra­che, die in vielen Bereichen der Da­ten­ana­ly­se und Statistik ein­ge­setzt wird. Eines der wich­tigs­ten Konzepte der R-Pro­gram­mie­rung sind Funk­tio­nen. Diese helfen dabei, den Code über­sicht­lich und modular zu gestalten.

Wofür braucht man Funk­tio­nen in R?

R-Funk­tio­nen werden genutzt, um den Code zu struk­tu­rie­ren, zu or­ga­ni­sie­ren und wie­der­zu­ver­wen­den. Sie sind besonders nützlich, wenn Sie komplexe Analysen durch­füh­ren, um­fang­rei­che Da­ten­ver­ar­bei­tungs­auf­ga­ben erledigen oder maß­ge­schnei­der­te Analysen erstellen möchten. In R Funk­tio­nen zu schreiben, bringt eine Reihe von Vorteilen mit sich:

  • Abs­trak­ti­on: Funk­tio­nen in R bieten eine Mög­lich­keit, komplexe Prozesse oder Be­rech­nun­gen in eine einzige, leicht ver­ständ­li­che Schnitt­stel­le zu kapseln. Auf diese Weise kann der Code einfacher gewartet und gelesen werden.
  • Wie­der­ver­wend­bar­keit: R-Funk­tio­nen er­mög­li­chen es, einen be­stimm­ten Codeblock wie­der­holt aus­zu­füh­ren, ohne ihn jedes Mal neu schreiben zu müssen. Dies spart Zeit und reduziert die Feh­ler­an­fäl­lig­keit.
  • Mo­du­la­ri­tät: R-Functions er­mög­li­chen die Auf­tei­lung eines großen Projekts in kleinere, über­schau­ba­re Teile.

Syntax von Funk­tio­nen in R

Die Syntax von Funk­tio­nen in R ist kon­sis­tent und folgt einem klaren Muster. Eine Funktion in R besteht aus ver­schie­de­nen Haupt­kom­po­nen­ten:

  • Funk­ti­ons­na­me: Der Name der Funktion, der im Nor­mal­fall angibt, welche Aufgabe sie erfüllt.
  • Argumente: Argumente sind Werte oder Variablen, die Sie der Funktion übergeben und die von der Funktion ver­ar­bei­tet werden. Eine Funktion kann beliebig viele (und auch gar keine) Argumente ent­ge­gen­neh­men. Außerdem können in R-Functions Default-Values für Argumente ein­ge­setzt werden.
  • Funk­ti­ons­kör­per: Der Funk­ti­ons­kör­per enthält den Code, der innerhalb der Funktion aus­ge­führt wird, und steht in ge­schweif­ten Klammern. Dieser Code kann auf die Argumente zugreifen und diese ver­ar­bei­ten.
  • Rück­ga­be­wert: Die meisten Funk­tio­nen in R geben mithilfe von return() einen Wert zurück, der das Ergebnis der Be­rech­nung darstellt. Dieser Rück­ga­be­wert kann verwendet werden, um das Ergebnis der Funktion in anderen Teilen des Codes zu verwenden.

Hier ist ein einfaches Beispiel für eine R-Funktion, die zwei Zahlen addiert:

my_add <- function(a, b) {
    result <- a + b
    return(result)
}
R

In diesem Beispiel ist my_add der Funk­ti­ons­na­me, a und b sind die Argumente, der Funk­ti­ons­kör­per führt die Addition aus und return(ergebnis) gibt das Ergebnis zurück. Es fällt außerdem auf, dass die R-Function-De­fi­ni­ti­on mit dem Schlüs­sel­wort function ein­ge­lei­tet wird.

Eine Funktion kann auch vor­de­fi­nier­te Werte für die Argumente be­inhal­ten, auf die dann zu­rück­ge­grif­fen wird, wenn keine Argumente übergeben werden. Die obige R-Funktion mit Default-Values sähe wie folgt aus:

my_add <- function(a = 1, b = 2) {
    result <- a + b
    return(result)
}
R

Wenn die Funktion nun auf­ge­ru­fen wird, ohne dass Argumente übergeben werden, liefert sie den Wert 3 zurück.

Tipp

Wenn Sie Ihr R-Projekt online bringen möchten, können Sie bei IONOS einen eigenen Webspace mieten, der Ihnen genügend Platz für Web­pro­jek­te jeder Art bietet.

Vor­in­stal­lier­te Funk­tio­nen in R

R verfügt über eine um­fang­rei­che Sammlung von bereits in­stal­lier­ten Funk­tio­nen, auch R-Commands genannt, die für ver­schie­de­ne Zwecke verwendet werden können. Diese Funk­tio­nen sind in R ohne vorherige De­fi­ni­ti­on verfüg- und nutzbar. Teilweise können die Funk­tio­nen, wie die Addition, auch durch Ope­ra­to­ren in R – in diesem Fall durch den Operator + – ersetzt werden.

Wenn Sie nicht gerade erst das Pro­gram­mie­ren erlernen, sind Ihnen einige der hier gezeigten vor­de­fi­nier­ten Funk­tio­nen si­cher­lich aus anderen Pro­gram­mier­spra­chen vertraut:

  • mean(): Berechnet den Durch­schnitt von Zahlen
  • plot(): Eine Plotting-Function in R für das Erstellen von Dia­gram­men und Grafiken
  • read.csv(): Liest Daten aus einer CSV-Datei ein
  • toupper(): Wandelt alle Zeichen eines R-Strings in Groß­buch­sta­ben um
  • sum(): Berechnet die Summe von Zahlen
  • print(): Gibt Werte auf der Konsole aus

Hier ist ein Beispiel zur Ver­wen­dung der vor­in­stal­lier­ten Funktion mean() in R. In der Variable result ist am Ende des Codes der Durch­schnitt aller Zahlen aus dem R-Vektor numbers hin­ter­legt.

numbers <- c(2, 4, 6, 8, 10)
result <- mean(zahlen)
R

Eigene R-Funk­tio­nen schreiben

Das Erstellen eigener Funk­tio­nen in R ist ein grund­le­gen­der Teil der Pro­gram­mie­rung in R. Sie können Funk­tio­nen erstellen, die speziell auf Ihre An­for­de­run­gen zu­ge­schnit­ten sind. Hierbei müssen Sie lediglich die R-Syntax beachten und sich überlegen, welche Argumente Ihre Funktion benötigt.

Ein einfaches Beispiel für eine eigene R-Funktion, die den Betrag einer Zahl zu­rück­gibt, könnte wie folgt aussehen:

my_abs <- function(x) {
    if (x < 0) {
        return(-x)
    } else {
        return(x)
    }
}
R

Im obigen Beispiel nimmt die Funktion ein Argument x entgegen. Im Funk­ti­ons­kör­per wird dann mithilfe eines R-if-State­ments geprüft, ob es sich hierbei um eine negative oder um eine positive Zahl handelt und der Rück­ga­be­wert wird ent­spre­chend angepasst.

Ver­wen­dung von Funk­tio­nen in R

Nachdem Sie eine Funktion erstellt haben, können Sie diese in Ihrem R-Code verwenden, indem Sie den Funk­ti­ons­na­men aufrufen und die er­for­der­li­chen Argumente übergeben. Die Ver­wen­dung eigener Funk­tio­nen erfolgt analog zu der Ver­wen­dung vor­de­fi­nier­ter R-Functions.

Hier ist ein Beispiel für die Ver­wen­dung der eben er­stell­ten my_abs-Funktion:

result <- my_abs(-5)
print(result)
R

Wenn Sie das Code­bei­spiel ausführen, werden Sie sehen, dass eine 5 auf dem Bild­schirm aus­ge­ge­ben wird. Die Be­rech­nung des Ab­so­lut­be­trags mithilfe der Funktion führt also zum richtigen Ergebnis.

Zum Hauptmenü