Fonctions écrites par l'utilisateur dans R
L'une des grandes forces de R est la possibilité pour l'utilisateur d'ajouter des fonctions. En fait, de nombreuses fonctions de R sont des fonctions de fonctions. La structure d'une fonction est présentée ci-dessous.
myfunction <- function(arg1, arg2, ... ){
statements
return(object)
}
Les objets de la fonction sont locaux à la fonction. L'objet renvoyé peut être n'importe quel type de données. En voici un exemple.
# 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)
Il peut être instructif d'examiner le code d'une fonction. Dans R, vous pouvez afficher le code d'une fonction en tapant le nom de la fonction sans le ( ).
Enfin, vous pouvez stocker vos propres fonctions et les rendre disponibles dans chaque session. Vous pouvez personnaliser l'environnement R pourcharger vos fonctions au démarrage.
Pratiquer
Essayez ce cours interactif sur l'écriture de fonctions dans R.