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.
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.