Ü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
Interaktive Übung zum Anfassen
Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um
