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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
L’utilisation d’une option spéciale <strong>Sas</strong>/Access <strong>de</strong> « dataset » : sasdatefmt= permet l’obtention forcée d’un<br />
informat/format date ou time appliqué à une colonne précisée (utilisez le nom excel).<br />
Ici dans notre exemple, dadmis et dplac ont reçu d’autres formats/informats, tandis que les autres ont été<br />
converties au date9. par défaut.<br />
Les autres options spéciales <strong>de</strong> dataset sont par exemple<br />
- Dbsastype=(nom<strong>de</strong>colonneexcel='sas data type') force la conversion vers autre chose que le type par défaut<br />
décrit ci-après. Char(w), Numeric, Datetime, Date et Time sont acceptés<br />
- Dbsaslabel=COMPAT | NO Par défaut, l’entête <strong>de</strong>vient le label <strong>de</strong> la variable <strong>Sas</strong> en lecture<br />
- Dblabel= YES | NO si yes, le label <strong>de</strong>vient en écriture, l’entête <strong>de</strong> la colonne extérieure<br />
Conversion par défaut lors d’une lecture libname en provenance d’Excel<br />
Format Excel <strong>de</strong> la<br />
colonne Format <strong>de</strong> variable SAS Type<br />
Texte $w. caractère<br />
Standard<br />
numérique<br />
Nombre<br />
Scientifique<br />
Pourcentage<br />
Fraction<br />
Currency/monétaire<br />
FRACT. ou PERCENT. éventuel<br />
DOLLAR21.2 numérique<br />
Date DATE9. par défaut numérique<br />
Datetime<br />
Time<br />
Conversions <strong>de</strong> SAS vers Excel lors d’une écriture libname:<br />
Un format caractère sera transformé en Texte.<br />
Les divers formats <strong>Sas</strong> numériques <strong>de</strong>viendront Nombre.<br />
Les date/time vers Date Heure.<br />
Les montants en Monétaire.<br />
On aura recours à l’option <strong>de</strong> dataset spéciale dbtype= pour contrecarrer le fonctionnement <strong>de</strong> la conversion par<br />
défaut.<br />
Sachez que le replace d’une feuille n’est pas permis. Un « proc datasets ;<strong>de</strong>lete … » et un « proc append<br />
base=… data=… ; » sont acceptés. La francisation décimale est reconnue.<br />
De plus, comme SAS variable labels, formats, and lengths are not written to DBMS tables, l’écriture par<br />
libname a ses limites à contourner.<br />
Dans le programme suivant, j’ai réussi à obtenir une colonne numérique pour le sexe qui était à l’origine : M,F<br />
Vous étudierez vous même le résultat sous Excel2003 si enrichi, Excel2007 ou la <strong>de</strong>rnière version <strong>de</strong> Calc.<br />
options VALIDVARNAME=ANY ;<br />
libname exbk excel 'd:\tabsas\Class List.xlsx' ;<br />
proc format; invalue $s "M"='1' "F"='2';run;<br />
DATA exbk.'Class List'n( dbtype=(gen<strong>de</strong>r='numeric') drop=sex) class;<br />
Retain gen<strong>de</strong>r ' ' 'First Name'n 'Height (in)'n 'Weight (lbs)'n Age ;<br />
SET sashelp.class<br />
(rename=(Name='First Name'n Height='Height (in)'n<br />
Weight='Weight (lbs)'n ));<br />
gen<strong>de</strong>r=input(sex, $s.);<br />
run;<br />
libname exbk clear;<br />
INED Wielki 106