Aan de slagBegin gratis

R geeft argumenten door op basis van waarde

De titel verklapt het al: R geeft argumenten door op basis van waarde. Wat betekent dat? Simpel gezegd: een R-functie kan de variabele die je aan die functie doorgeeft niet wijzigen. Laten we een eenvoudig voorbeeld bekijken (probeer het in de console):

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

Binnen de functie triple() wordt het argument x overschreven met zijn waarde maal drie. Daarna wordt deze nieuwe x geretourneerd. Als je deze functie aanroept met een variabele a die gelijk is aan 5, krijg je 15. Maar is de waarde van a veranderd? Als R a by reference aan triple() zou doorgeven, zou het overschrijven van x binnen de functie doorwerken naar de variabele a buiten de functie. R geeft echter op basis van waarde door, dus de R-objecten die je aan een functie doorgeeft, kunnen nooit veranderen tenzij je een expliciete toekenning doet. a blijft gelijk aan 5, ook nadat je triple(a) hebt aangeroepen.

Kun je aangeven welke van de volgende beweringen onwaar is over de onderstaande code?

increment <- function(x, inc = 1) {
  x <- x + inc
  x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

Deze oefening maakt deel uit van de cursus

R voor gevorderden

Bekijk cursus

Interactieve oefening met praktijkervaring

Zet theorie om in actie met een van onze interactieve oefeningen

Begin oefening