Nous allons travailler sur les données Pen Digits de l’UCI Machine Learning Repository (cf Pen-Based Recognition of Handwritten Digits Data Set). Nous disposons de deux fichiers, disponibles dans le répertoire /courses/dee4fb65ba27fe300/ :
pendigits.trapendigits.tesCes données sont composées de :
Il y a en tout 10992 tracés (un millier environ par chiffre).
La macro suivante permet de dessiner le chiffre dela première ligne d’une table passée en paramètre :
%macro DESSINE(table);
data ___dessine;
set &table;
retain xsys ysys '2' function 'label';
if (_n_ = 1) then
do;
array ax x1-x8;
array ay y1-y8;
do i = 1 to 8;
x = ax[i];
y = ay[i];
text = ''||i;
call symput('chiffre', trim(left(chiffre)));
output;
end;
end;
run;
title "&chiffre";
axis1 label=none major=none minor=none value=none order=(-10 to 110 by 10);
proc gplot data=___dessine anno=___dessine;
plot y*x / haxis=axis1 vaxis=axis1;
symbol v=none i=join;
run; quit;
proc delete data=___dessine;
run;
%mend;
Une fois exécutée, une macro est stockée et peut donc être réutilisée à n’importe quel moment de la session. Vous pouvez voir le résultat de son exécution en testant :
%dessine(pendigits);
PROC IMPORTVAR1, VAR3, VAR5, …, VAR15 : Xi (i de 1 à 8)VAR2, VAR4, VAR6, …, VAR16 : Yi (idem pour i)VAR17 : chiffre