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