Erste SchritteKostenlos loslegen

Übergabe von Argumenten per Wert

Der Titel dieser Übung verrät es schon: R übergibt Argumente per Wert. Was bedeutet das? Einfach ausgedrückt: Eine Funktion in R kann die Variable, die du als Eingabe an diese Funktion übergibst, nicht ändern. Schauen wir uns ein einfaches Beispiel an (probiere es in der Konsole aus):

triple <- function(x) {

  x <- 3*x

  x

}
a <- 5
triple(a)
a

Innerhalb der triple()-Funktion wird das Argument x mit dem Dreifachen seines Wertes überschrieben. Danach wird dieser neue Wert von x zurückgegeben. Wenn du diese Funktion mit der Variablen a gleich 5 aufrufst, lautet das Ergebnis 15. Aber hat sich der Wert von a tatsächlich verändert? Würde R a per Referenz an triple() übergeben, würde sich das Überschreiben von x innerhalb der Funktion auf die Variable a außerhalb der Funktion auswirken. R übergibt jedoch nach Wert, sodass die R-Objekte, die du an eine Funktion übergibst, sich nie ändern können, es sei denn, du nimmst eine explizite Zuweisung vor. Somit ist a auch nach dem Aufruf von triple(a) noch gleich 5.

Welche der Aussagen unten über den folgenden Codeabschnitt ist falsch?

increment <- function(x, inc = 1) {

  x <- x + inc

  x

}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

Diese Übung ist Teil des Kurses

R für Fortgeschrittene

Kurs anzeigen

Interaktive Übung zum Anfassen

Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um

Beginnen Sie mit dem Training