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.

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

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

Saved successfully!

Ooh no, something went wrong!