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.
Les fonctions numériques ou statistiques<br />
• Contrairement à la fonction nmiss qui ne peut porter que sur <strong>de</strong>s variables numériques, la<br />
nouvelle fonction cmiss(arg1, arg2, arg3…) assurera la détection <strong>de</strong>s valeurs manquantes aussi<br />
bien numériques que caractères.<br />
data test;<br />
length var1 $2 yy 8 var2 8 zz $1<br />
xx 8 tt $8;<br />
input var1 yy var2 zz xx tt;<br />
cards;<br />
1 2 3 4 5 6<br />
. . . . . 7<br />
. . . . . .<br />
8 . 9 n . z<br />
. 3 . . . .<br />
;<br />
data subset;<br />
set test;<br />
array nn[*] _numeric_;<br />
array cc[*] _character_;<br />
if cmiss(of _all_) < dim(nn) + dim(cc);<br />
run;<br />
NOTE: 5 observation(s) lue(s) dans la table<br />
WORK.TEST.<br />
NOTE: La table WORK.SUBSET a 4 observation(s) et 6<br />
variable(s).<br />
• Une longue liste <strong>de</strong> fonctions ou routine call dans le domaine math/stat a été incluse dans cette<br />
version.<br />
Sans nous étendre sur elles, en voici la liste :<br />
-Allcomb allperm arcosh arsinh artanh euclid gcd (+grand commun diviseur d’entiers) lcm lcomb<br />
lexcomb (etc dans le domaine lexicographique) lfact log1px lperm lpnorm msplint<br />
-Le fonction divi<strong>de</strong>(x,y) ,évitant une division par zéro, est enfin documentée. Découvrez y le sens du .I<br />
(infini), du .M (infinu négatif) et du ._<br />
-Sumabs(arg1,arg2…) serait une fonction sommant les valeur absolues d’arguments non-manquants<br />
data _null_;<br />
v1=162; v2=.25; v3=456; v4=.A; v5=-1;<br />
e=sumabs(of v1-v5);put e=;<br />
f=sum(of v1-v5);put f=;<br />
g=sumabs(25,.,.Z,56,-1); put g=;<br />
h=sum(25,.,.Z,56,-1); put h=;<br />
run;<br />
e=619.25<br />
f=617.25<br />
g=82<br />
h=80<br />
Des fonctions spécialisées<br />
• La nouvelle fonction geodist(lat1,long1,lat2,long2,) permettra <strong>de</strong> calculer une<br />
distance en M miles, K kilomètres, R radiants ou D <strong>de</strong>grés.<br />
*Washington étant 39°91'N 77°02'W la latitu<strong>de</strong> est positive ===> 39.91<br />
et la longitu<strong>de</strong> est négative en rapport Méridien Greenwich ===> -77.02;<br />
data _null_;<br />
input nom :$21. lat1 long1 lat2 long2 ;<br />
dist=geodist(lat1,long1,lat2,long2,'K');<br />
put nom $char25. dist 10.4 ' Kilomètres';<br />
cards;<br />
Teheran-Jerusalem 35.44 51.30 31.47 35.12<br />
Washington-Moscou 39.91 -77.02 55.45 37.35<br />
Buenos_Aires-Brasilia -36.30 -60.00 -15.47 -47.55<br />
;<br />
run;<br />
Teheran-Jerusalem<br />
1565.2504 Kilomètres<br />
Washington-Moscou<br />
7757.9106 Kilomètres<br />
Buenos_Aires-Brasilia 2617.6705 Kilomètres<br />
• La fonction unico<strong>de</strong>((,)) servira à traduire une chaine unico<strong>de</strong> en<br />
caractères <strong>Sas</strong> dans l’encodage courant <strong>de</strong> la session et unico<strong>de</strong>c( … ) fera l’inverse<br />
data a;a="é";unia=unico<strong>de</strong>c(a,('utf8'));put unia=;run; unia=é<br />
Il en existe d’autres à explorer dans le manuel NLS.<br />
INED Wielki 186