Chapitre 6. Programmation en R
235
b´ en´ eficier de toutes les m´ ethodes standards propos´ ees par le syst` eme R pour
traiter des mod` eles lin´ eaires. Pour le second appel, `
a savoir la m´ ethode plot(),
la m´ ethode finalement invoqu´ ee est plot.lm1 tout fraˆ ıchement cr´ e´ ee.
Remarque
Notons cependant que le R dispose en standard d’une m´ ethode
plot.lm() qui permet de proposer un ensemble de graphiques pour une
analyse plus approfondie des r´ esultats (voir le chapitre 12). Ayant volontairement chang´ e le comportement par d´ efaut du R pour le cas particulier
de la r´ egression lin´ eaire simple, il sera tout de mˆ eme possible de b´ en´ eficier
de cette m´ ethode en la d´ esignant explicitement (plot.lm(reg)).
Expert
Le m´ ecanisme de programmation orient´ ee objet est extrˆ emement simple
dans sa conception. Il existe bon nombre de langages de programmation
orient´ ee objet.Une diff´ erence importante est que la grande majorit´ e propose une encapsulation des champs de l’objet et des m´ ethodes dont l’un
des int´ erˆ ets est de pouvoir modifier les champs de l’objet lui-mˆ eme dans une
m´ ethode. Cela n’est pas directement possible en R compte tenu de la stricte
port´ ee locale des variables ` a l’int´ erieur du code d’une fonction R. L’utilisateur peut tout de mˆ eme adopter ce type de programmation s’il le d´ esire.
Toute m´ ethode .() dont l’objectif est de modifier des
champs de l’objet (de classe ) devra retourner l’objet
lui-mˆ eme. L’utilisateur de la fonction g´ en´ erique () pourra alors
affecter son r´ esultat ` a l’objet initial comme suit :
<- (). Le risque est tout de mˆ eme un ralentissement d’autant plus important que le contenu des champs de l’objet est volumineux. La raison est qu’une duplication compl` ete de l’objet
est effectu´ ee. Nous esp´ erons qu’un jour les d´ eveloppeurs de R proposeront
en standard une fonctionnalit´ e plus ´ el´ egante (et analogue ` a ce que propose la majorit´ e des langages de programmation orient´ ee objet) consistant
en la modification `
a l’int´ erieur du corps de la m´ ethode uniquement des
champs consid´ er´ es (souvent peu nombreux). Lorsque vous deviendrez (et
nous le souhaitons) un utilisateur averti, vous remarquerez que la notion de
pointeur (pourtant tr` es courante en programmation) n’est pas directement
propos´ ee au d´ eveloppeur R (voir cependant la fonction tracemem() ainsi
que 7.8.2.2, en page 324).
Précédent

- 268/701

Suivant