R nous donne la possibilité, très pratique, de créer des fonctions personnalisées.
Voici l’architecture globale :
nomdemafonction<-function(variable1,variable2...)
{
#ici on met le contenu de la fonction (généralement on effectue des transformations aux variables passées en argument)
return(Variabledesortie)# il s'agit du résultat que va renvoyer la fonction
}
#une fois la fonction créée on peut l'utiliser:
nomdemafonction(varA,varB)
Contrairement à d’autres languages, il n ‘y a pas de contrôle du type de variable que l’on peut utiliser. Il faudra l’inclure dans la fonction pour, par exemple, vérifier que la variable A est bien un vecteur (et pas un data.frame par exemple)
Voici un exemple de fonction, il s’agit d’une fonction simple qui va prendre 2 variables de type « integer » (c’est à dire un chiffre), en faire la somme, en prendre le carré et rajouter la valeur de la première variable.
monexemple<-function(A,B){
out<-(A+B)^2
out<-out + A
return(out)
}
monexemple(2,3)#27
monexemple(8,3)#129
L’ordre des paramètres est important, il faut les passer dans le même ordre que dans le code de la fonction, ici A puis B.
Il est possible (et même conseillé) de faire autrement en précisant la variable :
monexemple(2,3)#27
monexemple(3,2)#28
monexemple(A=2,B=3)#27
monexemple(B=3,A=2)#27
Il est possible de définir une valeur par defaut pour certain parametres ( ils deviennent alors optionnel)
monexemple2<-function(A,B=10){
out<-(A+B)^2
out<-out + A
return(out)
}
monexemple2(3) #A=3 et B=10
monexemple2(3,10) #A=3 et B=10
monexemple2(3,11) #A=3 et B=11
Bonus :
Il est possible d’utiliser le symbole « … » dans les paramètres d’une fonction pour indiquer que tous les paramètres supplémentaires seront transmis aux autres fonctions internes.