Utiliser des fonctions

Objectifs d’apprentissage

Une fois que vous avez défini les variables, l’analyse des données peut généralement être décrite comme une série de fonctions appliquées aux données. Une fonction est un ensemble d’énoncés regroupés sour un même objet pour effectuer une tâche spécifique.

R comprend de nombreuses fonctions prédéfinies. Nous avons déjà rencontré les fonctions install-packages, library, et ls. Nous avons également utilisé plusieurs opérateurs pour résoudre notre problème de crédit. Il y a beaucoup plus de fonctions prédéfinies, et beaucoup d’autres peuvent être ajoutées par des paquets. Enfin, dans une autre section, vous verrez que vous pouvez créer vos propres fonctions.

Dans cette section, nous allons :

  • Passer en revue quelques informations importantes relatives aux fonctions prédéfinies de R
  • Découvrir les outils permettant d’obtenir de l’information sur ces fonctions

L’exemple de la function log()

Les fonctions R utilisent les parenthèses

En général, pour évaluer une fonction, il faut utiliser des parenthèses. Notez ce qui se passe lorsque nous tapons la fonction “ls” au lieu de “ls()”.

ls
##                                                                              
## 1 function (name, pos = -1L, envir = as.environment(pos), all.names = FALSE, 
## 2     pattern, sorted = TRUE)                                                
## 3 {                                                                          
## 4     if (!missing(name)) {                                                  
## 5         pos <- tryCatch(name, error = function(e) e)

En n’utilisant pas les parenthèses, on fait apparaitre le code sous-jacent de la fonction.

Maintenant, si nous ajoutons les parenthèses, la fonction est évaluée et vous voyez les objets dans l’espace de travail.

ls()
## character(0)

Les fonctions R nécessitent généralement des arguments

Contrairement à la fonction ls, qui ne nécessite aucun argument, la plupart des fonctions en nécessitent au moins un. Un argument est un objet R, il peut s’agir d’une variable ou d’autres structures de données, que la fonction traitera avant de renvoyer un autre objet R.

Voici un exemple de la façon dont nous assignons un objet à l’argument pour la fonction log(). Si je tape log(8), 8 est l’argument envoyé à la fonction pour évaluation. J’obtiens en retour le log naturel de 8, c’est-à-dire 2.0794.

log(8)
## [1] 2.079442

Les fonctions peuvent prendre des variables comme arguments. Affectons la valeur 1 à la variable a. Comme a stocke le numerique 1, alors le log(a) devrait retourner la valeur 0.

a <- 1
log(a)
## [1] 0

Les fonctions peuvent être imbriquées

En R, les fonctions peuvent être imbriquées. C’est-à-dire que vous pouvez appeler une fonction dont le résultat va être utilisé comme argument par une autre fonction.

Par exemple, si nous tapons la fonction exp(1) la fonction pour obtenir une exponentiele, nous obtenons la constante mathématique e, $ 2.7182 $

Parce que exp() est la fonction inverse de log(), si nous calculons le log naturel de ce nombre, nous devrions récupérer $ 1 $. Notez donc que si nous tapons la fonction log() et qu’ensuite, à l’intérieur de cette fonction, nous utilisons la fonction argument exp(a), nous évaluons d’abord la première fonction, exp(a), puis la seconde, et nous obtenons une réponse de 1.

log(exp(1))
## [1] 1

Ce qu’il faut retenir, c’est que les fonctions sont évaluées de l’intérieur vers l’extérieur quand on les emboîte.

Comment apprendre à utiliser les fonctions

Utiliser le système d’aide pour comprendre la fonction

Vous pouvez vous renseigner sur cette fonction en utilisant le système d’aide. Une caractéristique très intéressante de R est qu’il documente ses fonctions et que nous pouvons appeler des fichiers d’aide.

Les fichiers d’aide sont comme des manuels d’utilisation des fonctions. Vous pouvez trouver :

  • ce que la fonction attend : les arguments
  • ce qu’elle fait (en général, le fichier d’aide contient des liens et des références utiles)
  • ce qu’elle produit, c’est-à-dire quels sont les types de résultats attendus

Vous obtenez de l’aide en utilisant la fonction d’aide, ou pour la plupart des fonctions, vous pouvez utiliser comme raccourci le point d’interrogation suivi du nom de la fonction.

help(log)
? log

Enfin, de nombreuses fonctions contiennent des exemples proposés par le développeur. Vous pouvez essayer les exemples élaborés fournis, en tapant :

example(log) # montre un exemple de journal de fonction
## 
## log> log(exp(3))
## [1] 3
## 
## log> log10(1e7) # = 7
## [1] 7
## 
## log> x <- 10^-(1+2*1:9)
## 
## log> cbind(x, log(1+x), log1p(x), exp(x)-1, expm1(x))
##           x                                                    
##  [1,] 1e-03 9.995003e-04 9.995003e-04 1.000500e-03 1.000500e-03
##  [2,] 1e-05 9.999950e-06 9.999950e-06 1.000005e-05 1.000005e-05
##  [3,] 1e-07 1.000000e-07 1.000000e-07 1.000000e-07 1.000000e-07
##  [4,] 1e-09 1.000000e-09 1.000000e-09 1.000000e-09 1.000000e-09
##  [5,] 1e-11 1.000000e-11 1.000000e-11 1.000000e-11 1.000000e-11
##  [6,] 1e-13 9.992007e-14 1.000000e-13 9.992007e-14 1.000000e-13
##  [7,] 1e-15 1.110223e-15 1.000000e-15 1.110223e-15 1.000000e-15
##  [8,] 1e-17 0.000000e+00 1.000000e-17 0.000000e+00 1.000000e-17
##  [9,] 1e-19 0.000000e+00 1.000000e-19 0.000000e+00 1.000000e-19

Chercher de l’aide extérieure

Parfois, le système d’aide ne suffira pas.

Vous pouvez également consulter les ressources Internet pour obtenir une aide supplémentaire. Il est très probable que quelqu’un ait eu les mêmes problèmes que vous auparavant et les ait résolus en demandant de l’aide sur les forums disponibles !

Un forum très utile pour R est Stackoverflow, mais d’autres forums existent, donc un bon début est d’utiliser avec le moteur de recherche qui vous est familier (Google, Bing, etc.)

Certains arguments sont facultatifs

En regardant le fichier d’aide pour la fonction log(), vous pouvez voir que la fonction log attend

  • un “x”, une valeur
  • il attend également une “base”.

Cependant, certains arguments sont exigés, et d’autres sont optionnels.

Vous pouvez déterminer quels arguments sont optionnels en notant dans le document d’aide qu’une valeur par défaut est attribuée avec le signe égal. Par exemple, la base du protocole de fonctions est par défaut la base exp(1). C’est le log naturel.

Si vous savez déjà comment la fonction fonctionne mais que vous avez besoin d’un rappel rapide des arguments, vous pouvez utiliser la fonction args.

args(log)
## function (x, base = exp(1)) 
## NULL

Vous pouvez modifier la valeur par défaut en attribuant simplement une autre valeur.

Par exemple, si au lieu du log naturel nous voulons obtenir le log base 2, nous taperons, par exemple, log de 8, et nous changerons maintenant la valeur par défaut de base en 2.

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

Notez que pour spécifier les arguments, nous utilisons le signe égal. Nous n’avons pas utilisé l’argument d’affectation.

Si nous lisons le fichier d’aide pour la fonction log, nous voyons que le premier argument a aussi un nom. C’est x. Cependant, nous n’avons pas utilisé le nom de cet argument. Nous pourrions, cependant.

Voici comment nous le ferions.

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

Nous obtenons la même réponse que si nous n’avions pas utilisé le nom x.

Le code ci-dessus fonctionne, mais nous pouvons gagner du temps, car si aucun nom d’argument n’est utilisé, R suppose que vous entrez les arguments dans l’ordre indiqué dans le fichier d’aide ou par args.

Ainsi, en n’utilisant pas les noms, R suppose que les arguments sont x, et que le suivant est base.

Les opérateurs sont des fonctions

Nous avons dit que les fonctions ont besoin de parenthèses pour être évaluées, mais il y a quelques exceptions. Parmi celles-ci, les fonctions les plus couramment utilisées sont les opérateurs arithmétiques et relationnels.

Par exemple, 2 ^ 3, cette fonction qui prend 2 à la puissance de 3 n’a pas besoin de parenthèses. Nous l’écrivons simplement comme nous le ferions dans une formule mathématique.

Vous pouvez chercher de l’aide sur les opérateurs arithmétiques en consultant le fichier d’aide.

help('+')

Ressources supplémentaires

At Quick-RQuick-R put up a useful selection of R functions

Exercises

Ex. 1: Que font ces fonctions?

Exécutez le code suivant dans la console R et trouvez quelle opérations elles effectuent:

n <- 1000
x <- seq(1,n)
sum(x)

Réponses possibles (Vous pouvez utiliser le système d’aide) :

  • sum crée une liste de nombres et seq les additionne.
  • seq crée une liste de nombres et sum les additionne.
  • seq calcule la différence entre deux arguments et sum calcule la somme de 1 à 1000.
  • sum renvoie toujours le même nombre
Cliquer pour voir la réponse

log10(sqrt(100))
## [1] 1

Ex. 2 : Fonctions imbriquées

Utilisez une ligne de code pour calculer le logarithme, en base 10, de la racine carrée de 100. Assurez-vous que votre code inclut les fonctions log10() et sqrt().

Cliquer pour voir la réponse

log10(sqrt(100))
## [1] 1

Précédent
Suivant