A SAS programozás

A SAS eljárások, vezérlési szerkezetek

A SAS eljárások alapjai

A SAS eljárások olyan programok, amelyek elérik a SAS adatállományokat, és azokon valamilyen számítást, elemzést végeznek.
Lényegében végrehajtható modulok, mégpedig olyan formában, hogy a felhasználó adhat nekik paramétereket. Így akár az output-ot futásról futásra is megváltozathatjuk, ha különböző paramétereket adunk meg. Minden eljárás ad output-ot, melynek alapszerkezete így néz ki:

PROC meghivando_eljaras_neve;
RUN;

Ezek az eljárások elég könnyen formálhatóak, nagy előnyük pedig abban rejlik, hogy az utasításokat és az opciókat szabadon megváltoztathatjuk:
PROC eljaras_neve opcio1, opcio2, …;
Utasitas…;
Utasitas…;
RUN;

PROC PRINT

A PROC PRINT az egyik legegyszerűbb és legkönnyebb SAS eljárás, feladata, hogy kilistázza egy SAS adatállomány adatait.
Legegyszerűbb formája, mikor a legutóbb létrehozott SAS adatállományt szeretnénk kiíratni:

PROC PRINT;
RUN;

Ha egy adatállomány nevére szeretnénk hivatkozni, azt is könnyen megtehetjük:
PROC PRINT DATA=adatallomany_neve;
RUN;
Természetesen a PROC PRINT utasításnak adhatunk opciókat, vagy egyéb utasításokat is írhatunk még a RUN elé.

VAR

A VAR utasítással lehet megmondani az eljárásnak, hogy éppen melyik változóval foglalkozzon, azaz megmondhatjuk, hogy mely változók vegyenek részt az elemzésben. Formája a lehető legegyszerűbb:

VAR valtozo1, valtozo2, …;

PROC SORT

Ezzel az eljárással készíthetünk növekvő vagy csökkenő sorba rendezést, mégpedig úgy, hogy átrendezi a megfigyeléseket az adatállományban. A BY utasítással meg kell adnunk benne, hogy mi szerint végezze a rendezést. Általános formája:
PROC SORT DATA=sas OUT=fajl ;
BY (DESCENDING) valtozo1 (DESCENDING) valtozo2 … ;
RUN;
A rendezés mindig növekvő sorrendben fog történni, kivéve, ha a változónév előtt megadjuk, hogy DESCENDING. Ebben az esetben csökkenő sorrendben fogja végrehajtani a rendezést.

Kiválasztó IF

IF SAS_kifejezés ;

A kiválasztó IF utasításnál csak azok a megfigyelések kerülnek bele a keletkező állományba, amelyek kielégítik a feltételt.

Operátorok:
EQ vagy = Egyenlő
NE vagy ^= Nem egyenlő
LE vagy <= Kisebb vagy egyenlő
LT vagy < Kisebb
GE vagy >= Nagyobb vagy egyenlő
GT vagy > Nagyobb

Logikai operátorok:
AND & Logikai ÉS
OR ¦ Logikai VAGY
NOT ^ Logikai NEM

DO ciklus

DO i=kezdet TO vég BY növekedés;
SAS_utasítás
END;

Az i változó belekerül az output állományba. A kezdet, a vég és a növekedés értéke a ciklus elején beállítódik, a ciklus közben pedig nem lehet megváltoztatni az értéküket. A BY növekedés részt nem kötelező megadni, ekkor 1-gyet vesz alapértelmezettnek. Egyébként az i változó értéke a ciklus végén növekszik, értelemszerűen a növekedés értékével. Az i értékének az összehasonlítása vég értékkel a ciklus elején történik.