Chapitre 6. Programmation en R
245
expression R peut donc ˆ etre vue comme du code R saisi cons´ ecutivement en
lignes de commandes jusqu’` a ce qu’il soit ex´ ecut´ e par l’interpr´ eteur R (c’est` a-dire nouvelle apparition du caract` ere > nous invitant ` a saisir une nouvelle
commande). Cette expression peut bien entendu ˆ etre multiligne. La fonction
expression() permet de d´ eclarer une expression R lorsqu’elle est utilis´ ee avec
un seul param` etre d’appel. On peut cependant fournir une s´ equence de plusieurs
expressions cons´ ecutives, chaque expression correspondant ` a un param` etre effectif dans l’appel de la fonction. Un objet expression n’est pas ´ evalu´ e par
l’interpr´ eteur R, mais peut ˆ etre enregistr´ e pour ˆ etre ´ evalu´ e plus tard autant
de fois qu’on le d´ esire. L’´ evaluation d’une expression R se fait au moyen de la
fonction eval(). Tous ces points sont illustr´ es ci-dessous.
> expression(v<-"valeur")
# Expression v<-"valeur"
# non évaluée.
expression(v <- "valeur")
> v
Error in eval(substitute(expr), envir, enclos) : objet ’v’ introuvable
> expression(v<-"valeur") -> expr
# Enregistrée dans l’objet
# expr.
> expr
expression(v <- "valeur")
> eval(expr)
# Évaluation de expr.
> v
# Voilà le résultat
# attendu.
[1] "valeur"
> expression(v<-"valeur2",v) -> expr # Équivalent à 2 lignes de
# commandes non évaluées.
> expr
expression(v <- "valeur2", v)
> eval(expr)
# La deuxième instruction affiche
# le contenu de v.
[1] "valeur2"
En tant que d´ eveloppeur, on peut trouver int´ eressant de convertir une chaˆ ıne
de caract` eres d´ ecrivant du code R en une expression R ` a ´ evaluer plus tard. La
fonction parse() est utilis´ ee pour cela :
> parse(text=’v<-"valeur"’) -> expr
> expr
expression(v<-"valeur")
> eval(expr)
> v
[1] "valeur"
Le param` etre formel text est utilis´ e ici pour lire une chaˆ ıne de caract` eres,
mais la premi` ere utilisation de la fonction est la lecture d’un fichier contenant
du code R dont on peut pr´ eciser le nom en premier param` etre effectif.
245
expression R peut donc ˆ etre vue comme du code R saisi cons´ ecutivement en
lignes de commandes jusqu’` a ce qu’il soit ex´ ecut´ e par l’interpr´ eteur R (c’est` a-dire nouvelle apparition du caract` ere > nous invitant ` a saisir une nouvelle
commande). Cette expression peut bien entendu ˆ etre multiligne. La fonction
expression() permet de d´ eclarer une expression R lorsqu’elle est utilis´ ee avec
un seul param` etre d’appel. On peut cependant fournir une s´ equence de plusieurs
expressions cons´ ecutives, chaque expression correspondant ` a un param` etre effectif dans l’appel de la fonction. Un objet expression n’est pas ´ evalu´ e par
l’interpr´ eteur R, mais peut ˆ etre enregistr´ e pour ˆ etre ´ evalu´ e plus tard autant
de fois qu’on le d´ esire. L’´ evaluation d’une expression R se fait au moyen de la
fonction eval(). Tous ces points sont illustr´ es ci-dessous.
> expression(v<-"valeur")
# Expression v<-"valeur"
# non évaluée.
expression(v <- "valeur")
> v
Error in eval(substitute(expr), envir, enclos) : objet ’v’ introuvable
> expression(v<-"valeur") -> expr
# Enregistrée dans l’objet
# expr.
> expr
expression(v <- "valeur")
> eval(expr)
# Évaluation de expr.
> v
# Voilà le résultat
# attendu.
[1] "valeur"
> expression(v<-"valeur2",v) -> expr # Équivalent à 2 lignes de
# commandes non évaluées.
> expr
expression(v <- "valeur2", v)
> eval(expr)
# La deuxième instruction affiche
# le contenu de v.
[1] "valeur2"
En tant que d´ eveloppeur, on peut trouver int´ eressant de convertir une chaˆ ıne
de caract` eres d´ ecrivant du code R en une expression R ` a ´ evaluer plus tard. La
fonction parse() est utilis´ ee pour cela :
> parse(text=’v<-"valeur"’) -> expr
> expr
expression(v<-"valeur")
> eval(expr)
> v
[1] "valeur"
Le param` etre formel text est utilis´ e ici pour lire une chaˆ ıne de caract` eres,
mais la premi` ere utilisation de la fonction est la lecture d’un fichier contenant
du code R dont on peut pr´ eciser le nom en premier param` etre effectif.
