CommencerCommencer gratuitement

R transmet les arguments par valeur

Le titre l'indique déjà : R transmet les arguments par valeur. Qu'est-ce que cela signifie ? En termes simples, cela signifie qu'une fonction R ne peut pas modifier la variable que vous entrez dans cette fonction. Prenons un exemple simple (essayez-le dans la console) :

triple <- function(x) {

  x <- 3*x

  x

}
a <- 5
triple(a)
a

Dans la fonction triple(), l'argument x est remplacé par sa valeur multipliée par trois. Ensuite, ce nouveau x est renvoyé. Si vous appelez cette fonction avec une variable a égale à 5, vous obtenez 15. Mais la valeur de a a-t-elle changé ? Si R transmettait a à triple() par référence, l'annulation de x à l'intérieur de la fonction se répercuterait sur la variable a, à l'extérieur de la fonction. Cependant, R transmet par valeur, de sorte que les objets R que vous transmettez à une fonction ne peuvent jamais changer à moins que vous ne fassiez une affectation explicite. a reste égal à 5, même après avoir appelé triple(a).

Pouvez-vous dire laquelle des affirmations suivantes est fausse à propos du morceau de code suivant ?

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

  x <- x + inc

  x

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

Cet exercice fait partie du cours

Intermédiaire R

Afficher le cours

Exercice interactif pratique

Passez de la théorie à la pratique avec l’un de nos exercices interactifs

Commencer l’exercice