Chapitre 6. Programmation en R
281
Remarque
En entrant la lettre c (pour continue), le code est ex´ ecut´ e jusqu’` a la fin,
` a moins que la commande browser() ne soit rencontr´ ee ` a nouveau.
La fonction debug()
Une autre fonction int´ eressante est la fonction debug() qui revient `
a placer une instruction browser() au tout d´ ebut du code d’une fonction. Ainsi
debug(var) va marquer la fonction var comme ´ etant d´ ebogable. Tout appel
subs´ equent de cette fonction lancera le d´ ebogueur en ligne.
debug(var)
var(1:3)
Pour supprimer ce marquage, on utilise la fonction undebug().
undebug(var)
6.6.2 Erreur dans le code R
Commencez par modifier la ligne 7 du fichier combn.R (voir page 260) en
rempla¸ cant la fl` eche d’affectation <- par le seul signe <. Ainsi nous incorporons
une erreur qui consiste en une omission d’un symbole (le symbole -) :
combmat < matrix(out$res,nrow=m,byrow=F)
Sauvez le fichier r´ esultant, puis sourcez-le et lancez l’instruction suivante :
> combnRC(5,3)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]
0
0
0
0
0
0
0
0
0
0
[2,]
0
0
0
0
0
0
0
0
0
0
[3,]
0
0
0
0
0
0
0
0
0
0
Comme on peut le constater, il y a une erreur dans le r´ esultat. Et l’erreur que
nous avons introduite d´ elib´ er´ ement dans le code pourrait ˆ etre difficile ` a d´ etecter
s’il s’´ etait agi d’une omission accidentelle. Voyons comment nous pourrions
proc´ eder pour tenter de d´ etecter d’o` u vient l’erreur. Il suffit d’installer, puis de
charger en m´ emoire le package debug. On utilise ensuite la fonction mtrace()
contenue dans ce package, de la fa¸ con suivante :
mtrace(combnRC)
combnRC(5,3)
Vous devriez alors voir apparaˆ ıtre la fenˆ etre de d´ ebogage avec le code source de
la fonction combnRC(). Un appui r´ ep´ et´ e sur la touche ENTR ´ EE ´ evaluera s´ equentiellement les diff´ erentes lignes de votre code source jusqu’` a l’affichage suivant
(survenant lors de l’´ evaluation de la ligne que nous avons modifi´ ee) :
Précédent

- 314/701

Suivant