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.

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

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

Saved successfully!

Ooh no, something went wrong!