ComeçarComece gratuitamente

R passa argumentos por valor

O título já revela o que você quer dizer: O R passa argumentos por valor. O que isso significa? Simplificando, isso significa que uma função do R não pode alterar a variável que você inseriu na função. Vejamos um exemplo simples (experimente no console):

triple <- function(x) {

  x <- 3*x

  x

}
a <- 5
triple(a)
a

Dentro da função triple(), o argumento x é substituído por seu valor vezes três. Depois disso, esse novo x é retornado. Se você chamar essa função com uma variável a definida como 5, obterá 15. Mas o valor de a mudou? Se o R passasse a para triple() por referência, a substituição de x dentro da função se estenderia até a variável a, fora da função. No entanto, o R passa por valor, de modo que os objetos do R que você passa para uma função nunca podem mudar, a menos que você faça uma atribuição explícita. a permanece igual a 5, mesmo depois de chamar triple(a).

Você sabe dizer qual das seguintes afirmações é falsa sobre o seguinte trecho de código?

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

  x <- x + inc

  x

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

Este exercício faz parte do curso

R intermediário

Ver Curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Comece o exercício