24.04.2014 Views

Pratique de Sas Windows ...9.3 Volume 2 - Ined

Pratique de Sas Windows ...9.3 Volume 2 - Ined

Pratique de Sas Windows ...9.3 Volume 2 - 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.

2.4 Les modifications ou nouveautés du macro-langage<br />

2.4.1 Les nouvelles macro-variables automatiques<br />

Elles couvrent divers domaines d’applications système, ods et contexte <strong>de</strong> programmation et nous les avons<br />

insérées dans ce programme en rouge :<br />

data test;<br />

set <strong>Sas</strong>help.class(firstobs=3 obs=6);<br />

put @11 name;<br />

run;<br />

ods escapechar="^";<br />

%put 1 le système <strong>de</strong> ce pc est en &sysaddrbits bits;<br />

%put 2 <strong>de</strong> quelle tribu ? &sysendian ;<br />

%put 3 dans ma <strong>de</strong>rnière table utilisée j ai &sysnobs observations;<br />

/* le nombre d observations tiré <strong>de</strong> la <strong>de</strong>rnière table fermée<br />

par la procédure ou l étape data précé<strong>de</strong>nte<br />

attention à l effet perturbant d un data _null_ ; */<br />

%put 4 actuellement j ai déjà défini le odsescapechar en &sysodsescapechar;<br />

%put 5 si un caractère unico<strong>de</strong> apparaît, il sera sur &syssizeofunico<strong>de</strong> caractères ;<br />

%put 6 la taille d un pointeur en bytes= &syssizeofptr;<br />

%put 7 longueur en bytes d un integer/entier long &syssizeoflong ;<br />

Le résultat obtenu sera<br />

1 le système <strong>de</strong> ce pc est en 32 bits<br />

2 <strong>de</strong> quelle tribu ? LITTLE<br />

3 dans ma <strong>de</strong>rnière table utilisée j ai 4 observations<br />

4 actuellement j ai déjà défini le odsescapechar en ^<br />

5 si un caractère unico<strong>de</strong> apparaît, il sera sur 2 caractères<br />

6 la taille d un pointeur en bytes= 4<br />

7 longueur en bytes d un integer/entier long 4<br />

Pour détecter si la version courante <strong>de</strong> <strong>Sas</strong> est 64 bits, il faudra se servir <strong>de</strong> if &SYSADDRBITS=64 ou <strong>de</strong><br />

if &SYSSIZEOFLONG=8. Pour le système d’exploitation, on questionnera %SYSSCPL pour windows 64 avec<br />

une réponse = X64_7PRO . Mais lisez cette discussion, il peut y avoir <strong>de</strong>s doutes en cas <strong>de</strong> double installation.<br />

http://www.listserv.uga.edu/cgi-bin/wa?A2=ind1301b&L=<strong>Sas</strong>-l&F=&S=&P=5779<br />

Voici d’autres exemples en ce qui concerne la MV automatique sysnobs :<br />

data septa ;<br />

put "avant " _n_ 2.;<br />

do until (eod);<br />

set <strong>Sas</strong>help.class(obs=3) end=eod;<br />

end;<br />

put "après " _n_ 2.;<br />

set <strong>Sas</strong>help.class;<br />

run ;<br />

%put 8a dans un contexte spécial, j ai &sysnobs enregistrements;<br />

proc print data=<strong>Sas</strong>help.class(obs=10);run;<br />

%put 8b après une procédure, j ai &sysnobs enregistrements;<br />

Le résultat sera :<br />

avant 1<br />

après 1<br />

avant 2<br />

NOTE: There were 3 observations read from the data set <strong>Sas</strong>HELP.CLASS.<br />

NOTE: There were 1 observations read from the data set <strong>Sas</strong>HELP.CLASS.<br />

NOTE: The data set WORK.SEPTA has 1 observations and 5 variables.<br />

NOTE: L'étape DATA used (Total process time): real time 0.01 secon<strong>de</strong>s<br />

cpu time 0.01 secon<strong>de</strong>s<br />

8a dans un contexte spécial, j ai 1 enregistrements<br />

et<br />

8b après une procédure, j ai 19 enregistrements<br />

Pour vous rappeler toutes les MV automatiques existantes, faites un %put _automatic_;<br />

74 <strong>Pratique</strong> <strong>de</strong> <strong>Sas</strong> windows ….93 <strong>Volume</strong> 2 et Coll.

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

Saved successfully!

Ooh no, something went wrong!