ComenzarEmpieza gratis

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

Ver curso

Ejercicio interactivo práctico

Convierte la teoría en acción con uno de nuestros ejercicios interactivos

Empieza a hacer ejercicio