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.