24.11.2014 Views

Pratique de Sas Windows 9.2... Volume 1 - Ined

Pratique de Sas Windows 9.2... Volume 1 - Ined

Pratique de Sas Windows 9.2... Volume 1 - Ined

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Estimates<br />

Une variante <strong>de</strong> l’ods select aurait pu être ods select where=(_NAME_ in('ANOVA' 'Estimates'));<br />

mais à vrai dire, comme indiqué dans le schéma <strong>de</strong> la page 115, l’ods output emprunte une autre voie<br />

indépendante et l’absence d’ods select ne change rien au contenu <strong>de</strong>s tables, mais par contre absent, tous les<br />

autres objets du catmod sortiront.<br />

Les autres options <strong>de</strong> ods output sont une variante du persist en persist=run et l’option match_all= .<br />

Le persist=run gar<strong>de</strong>ra la liste <strong>de</strong>s définitions <strong>de</strong>mandées et la table ouverte par <strong>de</strong>là la fin <strong>de</strong> l’étape.<br />

Seul un ods output clear ou close arrêtera l’accumulation.<br />

Le match_all= enclenche la production d’une nouvelle table incrémentale à chaque nouvel objet et sera suivi<br />

d’un nom <strong>de</strong> macrovariable accumulant les noms successifs séparé par un blanc. Et il est possible ensuite<br />

d’utiliser cette liste dans une étape Data.<br />

On pourra bien sûr mélanger les résultats <strong>de</strong> plusieurs procédures statistiques sous réserve <strong>de</strong> le faire à bon<br />

escient et en prenant gar<strong>de</strong> souvent à une bonne harmonisation prélalable sur les noms, type et length respectifs.<br />

Ainsi dans l’exemple élémentaire construit pour illustration, nous avons une assez gran<strong>de</strong> divergence entre les<br />

<strong>de</strong>ux objets issus du fitstatistics <strong>de</strong>mandé.<br />

Programme :<br />

ods output fitstatistics(match_all=macronoms persist=proc)=fitstat;<br />

proc glm data = sashelp.class ;<br />

mo<strong>de</strong>l weight = height age ;run;<br />

proc reg data=sashelp.class;<br />

mo<strong>de</strong>l weight = height age;run;<br />

ods output close;<br />

%put &macronoms;<br />

proc transpose data=fitstat1 out=fitstat1<br />

(drop=_name_ rename=(root_mse=rootmse moyenne_d_pendante=<strong>de</strong>pmean coeff_var=cv));<br />

var nvalue1; id label1; copy _proc_ _run_ <strong>de</strong>pen<strong>de</strong>nt;run;<br />

data complet;set &macronoms;run;<br />

...<br />

FITSTAT FITSTAT1<br />

Commentaire:<br />

- Une instruction ods output générère une table SAS(voir la table unique produite par tout d’abord un simple<br />

ods output fitstatistics(persist=proc)=fits;)<br />

- Pour contrer les fantaisies <strong>de</strong> la version francisée, nous avons été obligé <strong>de</strong> parler angalis et prendre le nom <strong>de</strong><br />

l’objet fitstatistics et la macrovariable va récupérer successivement pour la procédure gml une table<br />

temporaire FITSTAT et pour la procédure reg une table <strong>de</strong> nom FITSTAT1.<br />

- L’ods output a été fermé, n’ayant plus rien à y ajouter.<br />

- L’instruction macro %put rend visible cette création implicite et c’est pour cela que le proc transpose a écrasé<br />

en sortie la table en entrée : il en découle que l’instruction set &macronoms est adéquate.<br />

- Un proc transpose alambiqué a transposé une colonne <strong>de</strong> la table fitstat1 pour avec <strong>de</strong>s rename la rendre<br />

conforme à la table fitstat et parvenir à une table commune.<br />

INED Wielki 162

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!