246
Le logiciel R - Maˆ ıtriser le langage
Astuce
Voici un exemple d’utilisation des fonctions eval() et parse() :
> for (i in 1:3) eval(parse(text=paste("a",i," <- i",sep="")))
> a2
[1] 2
`
A pr´ esent, nous allons manipuler la fonction expression() pour d´ ecrire
quelques fonctionnements internes du R. Nous allons ainsi mieux comprendre
pourquoi il se dit que le langage R est un langage fonctionnel (c’est-` a-dire fond´ e
sur l’utilisation intensive des fonctions). Il est ´ etonnant de voir jusqu’` a quel
point ce principe est vrai. Le premier point abord´ e souligne que l’affectation
est consid´ er´ ee lors de l’ex´ ecution comme un op´ erateur, c’est-` a-dire une fonction
avec deux param` etres. Le premier correspond `
a la variable `
a affecter, le second
repr´ esente son contenu.
> toto <- "TOTO"
> toto
[1] "TOTO"
> "<-"(toto,"TOTO2")
# Équivalent à : toto <# "TOTO2"
> toto
[1] "TOTO2"
> expression("<-"(toto,"TOTO2")) # comme le prouve la sortie de
# cette expression.
expression(toto <- "TOTO2")
Poursuivons notre visite avec l’utilisation des parenth` eses qui permet notamment d’ordonner les priorit´ es d’ex´ ecution dans une expression R. Le R les
traite encore comme une fonction.
> 30 * (10+20)
[1] 900
> 30 * "("(10+20) # En coulisses, voilà ce qui est exécuté.
[1] 900
> expression(30 * (10+20))
expression(30 * (10 + 20))
> expression(30 * "("(10+20))
expression(30 * (10 + 20))
Il en va de mˆ eme pour la notion de bloc d’expressions qui se d´ efinit comme
une suite d’expressions R qui sont regroup´ ees entre les deux d´ elimiteurs accolades ouverte "{" et ferm´ ee "}".
> {
+ print("ligne1")
+ print("ligne2")
Précédent

- 279/701

Suivant