R pasa argumentos por valor
El título ya lo dice: R pasa los argumentos por valor. ¿Qué significa esto? Simplemente, significa que una función R no puede cambiar la variable que introduces en esa función. Veamos un ejemplo sencillo (pruébalo en la consola):
triple <- function(x) {
x <- 3*x
x
}
a <- 5
triple(a)
a
Dentro de la función triple()
, el argumento x
se sobrescribe con su valor multiplicado por tres. Después se devuelve esta nueva x
. Si llamas a esta función con una variable a
igual a 5, obtienes 15. Pero ¿ha cambiado el valor de a
? Si R pasara a
a triple()
por referencia, la anulación de x
dentro de la función se propagaría a la variable a
, fuera de la función. Sin embargo, R pasa por valor, por lo que los objetos R que pasas a una función nunca pueden cambiar a menos que hagas una asignación explícita. a
sigue siendo igual a 5, incluso después de llamar a triple(a)
.
¿Puedes decir cuál de las siguientes afirmaciones sobre el siguiente fragmento de código es falsa?
increment <- function(x, inc = 1) {
x <- x + inc
x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)
Este ejercicio forma parte del curso
R intermedio
Ejercicio interactivo práctico
Convierte la teoría en acción con uno de nuestros ejercicios interactivos
