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
Exercício interativo prático
Transforme a teoria em ação com um de nossos exercícios interativos
