9.1 Les fonctions

A chaque fois que vous utilisez R vous employez des fonctions sans plus y porter attention comme la fonction mean() par exemple. Vous pouvez cependant écrire vos propres fonctions qui seront adapté à votre problématique. La règle est assez simple, si vous répétez des blocs de codes plus de deux fois, il faut réaliser une fonction.

L’utilisation de fonctions a plusieurs avantages :

  • On évite de répéter des blocs de codes plusieurs fois

  • On limite les possibilités de bug

  • On rend notre code plus lisible

Une fonction se présente comme ci-dessous :

my_function(arg1, arg2)

La fonction porte un nom explicite suivi de parenthèses. A l’intérieur des parenthèses, on retrouve les arguments de la fonction.

Plusieurs fonction portant sur une même problématique se regroupe dans un package comme vous avez également l’habitude d’en utiliser comme data.io, chart, knitr. Néanmoins, ces notions ne seront pas détaillé au sein de ce module. Le package est très utile lorsque vous devez employer vos fonctions dans plusieurs projets différents.

9.1.1 Nom de la fonction et de ses arguments

Si il y a bien une question qui va vous prendre la tête et qui requiert généralement un certain temps de réflexion c’est le nom de votre fonction et de ces arguments. Un nom mal choisi et/ou farfelu voue votre fonction à l’oubli. Il faut essayer d’avoir un nom court et évoquant le rôle de la fonction. Essayez de respecter la convention suivante qui veut que le nom d’une fonction est un verbe et le nom des arguments sont des noms. De plus, il est de plus en plus courant de respecter le snake_case (tout est en minuscule séparé par des sous-tirets)

Au final, vous verrez que R n’est pas homogène. R est un language qui évolue au cours du temps et ce depuis 1993, ce qui explique ce manque d’homogénéité. Cependant, restez cohérent, fixez vous vos propres conventions et respectez les.

Imaginons que vous écrivez plusieurs fonctions :

  • CV()

  • Rescale01()

  • reg_lin()

  • TriMesTer()

  • MonIncroyable_fonction()

Ne faites pas cela !!!!!! Soyez cohérent

Tout comme pour le noms des fonctions, le noms des arguments est important. Les arguments se doivent d’être clairs. Il existe néanmoins des conventions d’usages

  • x, y, z : vecteurs

  • w : un vecteur de pondérations (w est le diminutif de weights)

  • df : un tableau de données (dataframe)

  • i, j : indice numériques (par exemple pour spécifier les colonnes et les lignes d’un tableau de données)

  • n : une longueur particulière ou un nombre de lignes

  • p : un nombre de colonnes

Vous retrouverez en plus des arguments comme na.rm. Il s’agit également d’arguments conventionnels. Si vous avez le besoin d’exprimer la présence de valeur manquante dnas le but de les exclure de la fonction, ajoutez cette argument dans votre fonction.