Chapitre 6 Les fonctions

6.1 Introduction

La plupart du temps, vous devrez utiliser des fonctions dans R pour effectuer les tâches voulues.

Les fonctions sont des outils qui permettent de simplifier l’utilisation de R. Elles permettent d’exécuter des opérations sur des objets sans avoir à spécifier chaque étape. Les fonctions sont des codes pré-existants dans R qui sont exécutés lorsque nécessaire. Ça permet de sauver du temps, car il n’est pas nécessaire de créer un code et de l’écrire à chaque fois qu’on doit l’utiliser.

Pour exécuter une fonction, vous devez l’appeler. L’appel d’une fonction est un raccourci vers le code de la fonction. Pour ce faire, il est nécessaire de spécifier des valeurs d’entrée qu’on nomme arguments (ou quelquefois paramètres). Après avoir lancé une fonction, R retourne une valeur de retour dans la console. La commande doit être structurée proprement en suivant les “règles de grammaire” du langage R (i.e. la syntaxe).

Un appel de fonction est structuré de la manière suivante : le nom de la fonction suivi de parenthèses ( ). On insère les arguments séparés par des virgules à l’intérieur des parenthèses :

nom_de_la_fonction(arg1, arg2, ...)

Voyons l’exemple de la fonction sum qui permet de faire la somme de deux ou plusieurs nombres.

sum(1, 2)

Les arguments sont des valeurs utilisées comme instructions pour que la fonction puisse retourner un résultat. Les objets peuvent être utilisés comme arguments :

a <- 3
b <- 5
sum(a, b)
## [1] 8

La sortie, qui apparaît sur la dernière ligne, est la valeur de retour de la fonction. Dans ce cas-ci, c’est la somme de a et b, soit 8.


6.1.1 DÉFI 11

  • Créez un vecteur nommé a contenant tous les nombres de 1 à 5

  • Créez un objet nommé b avec une valeur de 2

  • Ajoutez a à b en utilisant l’opérateur + et enregistrez le résultat dans un objet appelé resultat_add

  • Ajoutez a à b en utilisant la fonction sum() et enregistrez le résultat dans un objet appelé resultat_sum

  • Comparez les objets resultat_add et resultat_sum. Sont-ils différents?

  • Ajoutez 5 à resultat_sum en utilisant la fonction sum().

Solutions

  • Créez un vecteur nommé a contenant tous les nombres de 1 à 5
a <- 1:5
  • Créez un objet nommé b avec une valeur de 2
b <- 2
  • Ajoutez a à b en utilisant l’opérateur + et enregistrez le résultat dans un objet appelé resultat_add
resultat_add <- a + b
  • Ajoutez a à b en utilisant la fonction sum() et enregistrez le résultat dans un objet appelé resultat_sum
resultat_sum <- sum(a, b)
  • Comparez les objets resultat_add et resultat_sum. Sont-ils différents?
resultat_add
## [1] 3 4 5 6 7

L’opération sur le vecteur ajoute deux à chaque élément. Le résultat est un vecteur.

resultat_sum
## [1] 17

La fonction sum() additionne toutes les valeurs de a et b. C’est équivalent à 1 + 2 + 3 + 4 + 5 + 2. Le résultat est un nombre.

  • Ajoutez 5 à resultat_sum en utilisant la fonction sum().
sum(resultat_sum, 5)
## [1] 22

6.2 Arguments

Tous les arguments ont un nom qui peut être indiqué lorsqu’on appelle une fonction.

Pour indiquer le nom d’un argument lors d’un appel de fonction, il suffit simplement de l’écrire de la façon suivante : nom_argument=valeur:

log(x = 8, base = 2)

Si le nom n’est pas indiqué, l’ordre des arguments est primordial.

log(8, 2)
## [1] 3
log(2, 8)
## [1] 0.3333333

Si le nom est indiqué, l’ordre des arguments n’a pas d’importance.

log(x = 8, base = 2)
## [1] 3
log(base = 2, x = 8)
## [1] 3

6.2.1 DÉFI 12

plot(x, y) est une fonction qui crée un graphique de y en fonction de x. Cette fonction nécessite deux arguments nommés x et y.

Quelles sont les différences entre les lignes de codes suivantes ?

a <- 1:100
b <- a^2
plot(a, b)
plot(b, a)
plot(x = a, y = b)
plot(y = b, x = a)

Solutions

plot(a, b)

Créer un graphique de b en fonction de a.

plot(b, a)

Créer un graphique de a en fonction de b. Les noms d’arguments ne sont pas indiqués, donc l’ordre des arguments est primordial!

plot(x = a, y = b)

Créer un graphique de b en fonction de a. C’est le même graphique que plot(a, b).

plot(y = b, x = a)

Créer un graphique de b en fonction de a. Les noms d’arguments sont indiqués, donc l’ordre des arguments n’a pas d’importance.


À titre de référence, voici une liste de fonctions couramment utilisées dans R :

sqrt, log, exp, max, min, sum, mean, sd, var, summary, plot, par, paste, format,
head, length, str, names, typeof, class, attributes, library, ls, rm, setwd, getwd, file.choose,
c, seq, rep, tapply, lapply, aggregate, merge, cbind, rbind, unique,
help (or ?), help.search (or ??), help.start