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.
7.4.4 Et les fichiers dbase ?<br />
Un petit mot en ce qui concerne les import/export dbf, car l’Insee met à disposition <strong>de</strong>s chercheurs les données<br />
<strong>de</strong> ses enquêtes (RP, EE etc) à ce format sur son site. En général, il y a trois fichiers dbf : celui <strong>de</strong>s données,<br />
celui <strong>de</strong>s labels <strong>de</strong> variables et enfin celui <strong>de</strong>s labels <strong>de</strong> modalités. Or, la construction d’une table sas<br />
documentée se heurtait au fait que l’encodage interne aux fichiers n’était pas win-1252 alias WLATIN1 ou<br />
l’iso-8859-1. Dans cette nouvelle version <strong>de</strong> <strong>Sas</strong>, la question <strong>de</strong> l’encodage (UTF8 etc) a été bien mieux prise<br />
en compte et le programmeur qui se heurtait à du texte français dégradé au niveau <strong>de</strong>s lettres accentuées sera<br />
très content <strong>de</strong> sauter la lour<strong>de</strong> étape <strong>de</strong> correction.<br />
libname autre "D:\ined\patrim03";<br />
proc import dbms=dbf<br />
file="d:\ined\patrim03\individu04.dbf"<br />
out=individu04 replace;<br />
dbencoding=pcoem850 ;<br />
get<strong>de</strong>l=yes;<br />
run;<br />
proc import dbms=dbf<br />
file="d:\ined\patrim03\varlist_individu04.dbf"<br />
out=varlist replace;<br />
dbencoding=pcoem850 ;<br />
get<strong>de</strong>l=yes;<br />
run;<br />
proc import dbms=dbf<br />
file="d:\ined\patrim03\varmod_individu04.dbf"<br />
out=varmod replace;<br />
dbencoding=pcoem850 ;<br />
get<strong>de</strong>l=yes;<br />
run;<br />
<strong>Sas</strong> signale cependant qu’il faut, par rapport à dbase, faire attention aux données manquantes numériques et au séparateur décimal.<br />
Dans le config <strong>de</strong> <strong>Sas</strong>, on pourra mettre un paramètre en variable d’environnement<br />
-set DBFMISCH valeur => 999 ou NULLS avec <strong>de</strong>s zéros binaires ou BLANKS avec <strong>de</strong>s blancs.<br />
option CTRYDECIMALSEPARATOR= "," ;<br />
peut être utile en cas <strong>de</strong> problème avec le signe décimal virgule.<br />
L’instruction get<strong>de</strong>l=yes; a pour effet <strong>de</strong> purger les enregistrements <strong>de</strong> la base dbf qui ne sont pas encore<br />
éliminés mais seulement marqués comme tel.<br />
7.4.5 Et le tout simple csv à la française ?<br />
• Le dbms=csv est simplissime.<br />
libname a "d:\tabsas\";<br />
proc export data=a.classe dbms=csv outfile="d:\tabsas\csvexport.csv";<br />
<strong>de</strong>limiter=";"; run;<br />
Mieux :<br />
proc export data=a.classe dbms=tab outfile="d:\tabsas\txtexport.txt"<br />
replace; run;<br />
• Il existe cependant <strong>de</strong>s alternatives réglant peut-être mieux les rapports avec les préréglages d’Excel.<br />
ods csv file='d:\tabsas\csvtest.csv' options(doc='Help' <strong>de</strong>limiter=";");<br />
proc print data=sashelp.class(obs=1);run;<br />
ods csv close;<br />
Les options <strong>de</strong>limiter=' ;', thousands_separator='' et <strong>de</strong>cimal _separator=',' permettent bien <strong>de</strong>s<br />
choses sous réserve <strong>de</strong> tester préalablement un petit exemple en fonction <strong>de</strong> votre contexte <strong>Windows</strong>.<br />
Le fait d’utiliser doc=help vous permet <strong>de</strong> sortir la documentation <strong>de</strong> cette possibilité sur la log/journal.<br />
• Et la vieille solution valable aussi si on n’a pas le module sas access to pc file formats.<br />
data _null_; set a.classe;<br />
file "d:\tabsas\csvpgm.csv" dsd dlm=';';<br />
put (_all_) (:);<br />
run;<br />
INED Wielki 103