Chapitre 3. Manipulation de donn´ ees, fonctions
129
Attention
Lorsque cela est possible, il est pr´ ef´ erable d’´ eviter l’utilisation de boucles
en R, car cela entraˆ ıne souvent un accroissement du temps de calcul (qui
peut ˆ etre mesur´ e grˆ ace ` a la fonction system.time()). La plupart des op´ erations en R sont en effet vectoris´ ees, c’est-` a-dire qu’elles peuvent op´ erer
sur des vecteurs, et ce calcul est effectu´ e dans un langage compil´ e, ce qui
est beaucoup plus rapide.
> system.time(for (i in 1:1000000) sqrt(i))
user system elapsed
0.156
0.028
0.182
> system.time(sqrt(1:1000000))
user system elapsed
0.012
0.000
0.010
Par ailleurs, des fonctions comme apply(), tapply() et sapply() fournissent une fa¸ con de r´ ealiser des boucles de fa¸ con implicite et souvent tr` es
commode.
SECTION 3.8
Cr´ eation de fonctions
Nous avons d´ ej` a vu en 1.1.4, page 47, quelques notions succinctes sur l’ex´ ecution de fonctions R. Le langage R offre ´ egalement la possibilit´ e de cr´ eer ses
propres fonctions. Nous en proposons un aper¸ cu dans cette section. Le lecteur devra s’attarder sur chacun des codes pr´ esent´ es afin de s’assurer qu’il en
comprenne bien le fonctionnement.
Renvoi
Une pr´ esentation plus formelle de la programmation de fonctions est
pr´ esent´ ee au chapitre 6.
Afin d’illustrer simplement le processus de cr´ eation de fonctions, nous allons
nous appuyer sur le calcul de l’indice de masse corporelle (IMC) ` a partir du
poids (en kg) et de la taille (en m) suivant la formule bien connue
IMC =
Poids
T aille 2 .
Celle-ci se programme facilement en R de la fa¸ con suivante :
> IMC <- function(poids,taille) {
+ imc <- poids/taille^2
+ names(imc) <- "IMC"
Précédent

- 163/701

Suivant