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
Começar o exercício