top of page

CRÉER SES PROPRES FONCTIONS

Comme dans la majorité des langages de programmation, sous R, il est possible de créer ses propres fonctions.

Cela se fait avec la fonction nommée function().

 

La syntaxe est la suivante :

NomDeLaFonction <- function(paramètre1, paramètre2, ..., paramètreN) {

    action de la fonction

}

Exemple :

MaFonction <- function(texte1, texte2) {

    print(texte1) # Affiche le contenu de la variable texte1.

    print(texte2) # Affiche le contenu de la variable texte2.

}

Vous vous demandez surement comment entrer les valeurs présentent dans les variables paramètres. Et bien, c'est très simple, cela se fait lors de l'appel de la fonction.

Pour utiliser une fonction que vous avez créer, c'est la même méthode qu'avec les fonctions de base. Il faut l'appeler puis indiquer la valeur des paramètres (s'il y en a).

MaFonction("Bonjour", "STID") # Affiche Bonjour STID

Vous l'aurez compris, il faut bien garder le même ordre entre la création de la fonction et son appel lors de son utilisation.

Si vous voulez changer l'ordre des paramètres lors de l'utilisation de la fonction, il faudra précéder la valeur du paramètre par le nom du paramètre.

MaFonction(texte2="STID",  texte1="Bonjour") # Affiche Bonjour STID

Lors de la création d'une fonction, il est possible de créer un paramètre par défaut, c’est-à-dire un paramètre qui aura une valeur par défaut (si on ne donne pas de valeur au paramètre lors de l'utilisation de la fonction). Pour cela, il faut juste faire comme dans l'appel d'une fonction : précéder la valeur du paramètre par le nom du paramètre.

MaFonction <- function(texte1, texte 2, texte3="France") {

    print(texte1) # Affiche le contenu de la variable texte1.

    print(texte2) # Affiche le contenu de la variable texte2.

    print(texte3) # Affiche le contenu de la variable texte3 (STID si aucune valeur n'est précisée).

}

Enfin, pour utiliser une fonction avec un paramètre par défaut, on a deux possibilités.

Soit on garde la valeur du paramètre par défaut soit on la change.

On garde la valeur du paramètre par défaut (on n'en précise pas de nouvelle) :

MaFonction("Bonjour", "STID") # Affiche Bonjour STID France

MaFonction(texte2="STID",  texte1="Bonjour") # Affiche Bonjour STID Fance

On change la valeur du paramètre par défaut (on en précise une nouvelle) :

MaFonction("Bonjour", "STID", "Lisieux") # Affiche Bonjour STID Lisieux

MaFonction(texte2="STID",  texte1="Bonjour", texte3="Lisieux") # Affiche Bonjour STID Lisieux

Il peut arriver quelquefois qu'on ne connaisse pas à l'avance le nombre de paramètres que l'on va utiliser. Je vais donc vous apprendre comment créer une fonction avec des paramètre non définis à l'avance. Lors de la définition des paramètres utilisés dans la fonction, il faudra finir la liste de ces paramètres par trois petits points. Ensuite, quand on fera référence aux paramètres non définis à l'avance, il faudra mettre des trois petits points.

MaFonction <- function(parametre1, ... ) {

    ListeParametres <- list(parametre1, ... ) # Crée une liste avec le premier paramètre défini (texte1) mais aussi les autres paramètres non définis à l'avance (...).

    print(ListeParametres ) # Affiche l'ensemble des paramètres de la fonction.

}

Pour utiliser une fonction avec des paramètres non définis à l'avance, on fait comme précédemment sauf que l'on peut définir autant de paramètres que l'on souhaite.

MaFonction(parametre1="Bonjour", parametre2="DUT", parametre3="STID") # Affiche le contenu de la liste avec tous nos paramètres, c’est-à-dire Bonjour DUT STID.

Enfin, vous devez savoir qu'une fonction peut renvoyer une ou plusieurs valeurs. Pour qu'une fonction renvoie une valeur, on peut utiliser la fonction return(). Cependant, l'utilisation de cette fonction n'est pas obligatoire. En effet, la règle est la suivante : l'objet retourné par une fonction est le dernier objet manipulé.

Il est alors intéressant d'utiliser une liste comme dernier objet manipulé pour pouvoir ainsi avoir une fonction qui retourne plusieurs valeurs et pouvoir manipuler cet objet.

Exemple :

MaFonction <- function(chiffre1,chiffre2){
  addition <- chiffre1 + chiffre2
  soustraction <- chiffre1 - chiffre2
  list(addition, soustraction) # Crée une liste qui contient les variables calculées à partir des paramètres.
}

Resultat <- MaFonction(7,4) # Récupère dans un objet nommé Resultat le dernier objet utilisé dans la fonction (c’est-à-dire la liste contenant les variables).
Resultat # Affiche le contenu de l'objet Resultat. Cela affiche donc 11 (7+4) puis 3 (7-4).

 

​​​

Pour finir, je dois vous parlez de la portée des variables. Mais rassurez-vous, ce point est très simple.

Vous devez juste savoir qu'une variable définie dans une fonction (correspondant aux paramètres utilisés dans la fonction) ne pourra pas être utilisée en dehors de cette fonction. Cette variable a ce qu'on appelle une portée locale.

Cependant, si vous déclarez une variable dans votre programme, en dehors d'une fonction, vous pourrez l'utiliser partout (aussi bien dans votre programme que lors d'une création de fonction). Les variables crées en dehors de la création d'une fonction ont ce qu'on appelle une portée globale.

bottom of page