A SAS programozás

Szintaxis, változók, adatállományok felépítése

Szintaxis

Utasítások:
A kulcsszavak SAS utasítások nevei, ezzel kell, hogy kezdődjenek az utasítások. Egy SAS utasítás akár több soros is lehet, bárhol kezdődhet és végződhet, agy sorba pedig több utasítást is írhatunk. Éppen ezért szükség van egy utasítás elválasztó jelre, ami a pontosvessző. Tehát pontosvesszővel kell lezárni egy utasítást.
Nevek:
A SAS állománynevek és a SAS változónevek betűvel vagy aláhúzással kell, hogy kezdődjenek, majd betűvel, számmal vagy aláhúzással folytatódhatnak.
Program:
Fontos, hogy a programban a szavakat szóközzel kell elválasztani. Mivel más szabály nincs, ezért olyan stílusban tudunk programot írni, ami számunkra a legkényelmesebb.

Helyes példa:

data fonok ;
set alkalmazott ;
run ;
proc print ;
run ;


Helytelen példa:
datafonok ;
set alkalmazott ;
run ;
procprint ;
run ;

Változók

A változóknak 2 típusa van: karakteres és numerikus.
A karakteres változók tulajdonképpen bármit tartalmazhatnak: betűt, számot és speciális karaktert is.
A másik típusa a változóknak a numerikus, az ilyen típusú változók csak számokat tartalmazhatnak.
Egy változónak meg lehet változtatni az alapértelmezett hosszát a LENGTH utasítással:

LENGTH változónév {$}hossz;

Ezt leginkább akkor használjuk, ha egy külsős fájlból listás olvasással olvasunk be 8-nál hosszabb karakteres adatot, mivel az alapértelmezett hossz a 8. A kerekteres változóknál szükséges a $ jel megadása.
Lehetőség van a változóknál a maszk használatára is, ennek segítségével az ugyanúgy kezdődő változókra lehet hivatkozni:
MAX: mindegyik MAX-xal kezdődő változóra utal.

Adatértékek megváltoztatása

Sokszor szükség van arra, hogy az adatértékeket megváltoztassuk. Ezt a PUT és az INPUT függvényekkel tehetjük meg.

PUT függvény

eredmény = PUT (változó,formátum) ;

A PUT függvény a változó értéket a megadott formátumban írja ki az output-ra. Főleg akkor alkalmazzuk, ha numerikus értéket karakteressé szeretnénk konvertálni. Fontosabb szabályok:
- az eredmény mindig egy karaktersorozat
- az eredmény hossza a formátumban meghatározott lesz
- a változó és a formátum azonos típusú kell hogy legyen (karakteres vagy numerikus)
- ha a változó és a formátum is numerikusak, akkor az eredmény jobbra igazított lesz, ha pedig karakteresek, akkor balra igazított lesz
A következő példa a HEX változó értékét írja ki a LOG-ba:
DATA;
chardata ='OLVAS';
hexdata=PUT(chardata,$hex4.);
PUT hexdata;
RUN;

INPUT függvény
eredmény = INPUT (változó,input_formátum) ;

Az INPUT függvény a megadott formátumban olvassa be a változót.
A következő példa 666666.66 értéket írja ki a LOG-ba:
DATA konv; karakter='666,666.66'; num=INPUT(karakter,COMMA10.); PUT num; RUN;

Adatállományok felépítése

A SAS adatállományok nem mások, mint táblázatok. Ezeket SAS programokkal olvashatjuk, írhatjuk, elemezhetjük és feldolgozhatjuk. A táblázat oszlopait változóknak, a sorokat pedig megfigyeléseknek nevezzük.