Ir al contenido principal
Documentos
Gestión de datos en RGráficos en RR DocumentaciónInterfaz REstadística en RIntroducción de datos en R

Funciones escritas por el usuario en R

Uno de los grandes puntos fuertes de R es la capacidad del usuario para añadir funciones. De hecho, muchas de las funciones de R son en realidad funciones de funciones. A continuación se indica la estructura de una función.

myfunction <- function(arg1, arg2, ... ){
statements
return(object)
}

Los objetos de la función son locales a la función. El objeto devuelto puede ser de cualquier tipo de datos. He aquí un ejemplo.

# function example - get measures of central tendency
# and spread for a numeric vector x. The user has a
# choice of measures and whether the results are printed.

mysummary <- function(x,npar=TRUE,print=TRUE) {
  if (!npar) {
    center <- mean(x); spread <- sd(x)
  } else {
    center <- median(x); spread <- mad(x)
  }
  if (print & !npar) {
    cat("Mean=", center, "\n", "SD=", spread, "\n")
  }
else if (print & npar) {
    cat("Median=", center, "\n", "MAD=", spread, "\n")
  }
  result <- list(center=center,spread=spread)
  return(result)
}

# invoking the function
set.seed(1234)
x <- rpois(500, 4)
y <- mysummary(x)
Median= 4
MAD= 1.4826
# y$center is the median (4)
# y$spread is the median absolute deviation (1.4826)

y <- mysummary(x, npar=FALSE, print=FALSE)
# no output
# y$center is the mean (4.052)
# y$spread is the standard deviation (2.01927)

Puede ser instructivo mirar el código de una función. En R, puedes ver el código de una función escribiendo el nombre de la función sin el ( ).

Por último, puede que quieras almacenar tus propias funciones, y tenerlas disponibles en cada sesión. Puedes personalizar el entorno de R para quecargue tus funciones al inicio.

Practicar

Prueba este curso interactivo sobre la escritura de funciones en R.

Aprende lo esencial de R

Domina los fundamentos del análisis de datos en R, incluyendo vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.
Empieza a aprender R gratis