Sunteți pe pagina 1din 6

Concepte privind programarea SAS i lucrul cu programe SAS

Un programSAS const dintr-o secven de pai trimis, pentru execuie, motorului SAS.
n continuare aceste secvene vor fi referite ca seciuni.
Seciunile pot fi seciuni de date (DATA steps) i seciuni de proceduri (PROC steps).
Seciunile de date sunt, de obicei, folosite pentru a crea tabele de date n format SAS
(Data Set) pe baza unor alte tabele SAS, fiiere text sau n alte formate, precum i
pentru a actualiza tabele deja existente.
- Una din modalitile prin care SAS Enterprise Guide folosete seciunea de
date const n manipularea datelor n Grila de date (Data Gread), unde, de
exemplu, se poate aduga o nou coloan la datele deja existente.
- alt modalitate implic folosirea procedurilor de import a datelor (Import
Wizard),
Seciunile de proceduri sunt, de obicei, folosite pentru a efectua prelucrri i
interogri, pentru a genera rapoarte, a sintetiza date sau pentru a genera grafice.
Seciunile de date ncep cu cuvntul DATA iar cele de proceduri cu cuvntul PROC i se
termin de cele mai multe ori cu directiva RUN.
Fecare seciune este executat complet, nainte s se treac la urmtoarea seciune.
Produsul SAS conine, de asemenea i declaraii globale, care afecteaz ntreg mediul
SAS i rmn valide de la o seciune DATA sau PROC la alta (de exemplu directivele
OPTIONS i TITLE), pn cnd ele sunt schimbate de alte directive globale sau pn se
ncheie sesiunea de lucru SAS.
Fiecare prelucrare din SAS Entreprise Guide corespunde uneia sau mai multor proceduri.
Pentru a determina care procedur sau proceduri corepund unei anumite prelucrri, se
selecteaz ferestra procedurilor (din meniul bar se selecteaz opiunile View > Task
List > Tasks by Name). Prelucrrile vor fi afiate n ordine alfabetic, mpreun cu
procedurile asociate. De asemenea i opiunea, Help permite s se identifice procedura
SAS corepunztoare. n fereastra Help, selecnd opiunea About <task name> din tabul Contents i butonul Syntax Reference, utilizatorul va fi capabil s vizualizeze codul
procedurii.
Sintaxa codului SAS
Declaraiile SAS au urmtoarele caracteristici:
ncep, de obicei, cu un cuvnt cheie
ntotdeuna de termin cu punct i virgul ( de exemplu: title 'Orders Analysis';)
aceast regul este foarte important deoarece un character de tipul ; pus incorrect n
cadrul codului SAS poate genera mesaje de eroare greu de interpretat
pentru a separa cuvintele, se pot folosi unul sau mai multe spaii libere sau caractere
de spaiere
declaraiile pot ncepe i se pot termina n orice coloan

o singur declaraie poate fi scris pe mai multe rnduri (de exemplu:


input
Order_No $ 1-5 Prod_ID $ 2-10 Quantity $ 1315 SellPrice 17-22 Income $ 25-32;)
mai multe declaraii pot fi scrise pe acceai linie) de exemplu: title 'Orders Analysis;
var SellPrice; run;)
introducerea comentariilor se face utiliznd caracterele /* pentru a ncepe un
comentariu, apoi se scrie textul comentariului, iar pentru a-l termina se introduc din
nou caracterele */. Aceste comentarii pot fi utilizate pentru a documenta sau a descrie
programul dar nu influieneaz rezultatul acestuia (de exemplu: /* Creaza tabela
SAS ad_data.orders */). n aceiai linie de cod pot fi introduse mai multe comentarii
imbricate (de exemplu input Gender $ Age /* age is in years */ Height Weight;).
o alt modalitate de a introduce un comentariu este de a-l incepe cu caracterul * i a-l
termina cu caracterul ; indiferent de numrul de linii pe care l cuprinde
o directiv care ncepe cu caracterul = se numete directiv de atribuire (assignment
statement). Ea este o instruciune de execuie a calculelor din partea dreapt a
semnului = i de atribuire a valorii rezultatului variabilei al crei nume este trecut n
partea stng a semnului =.
Directiva de atribuire poate utiliza urmtorii operatori (prezentai n ordinea
cresctoare a prioritii lor)
+
adunare

scdere
*
nmulire
/
mprire
**
ridicare la putere

negare
SAS nu este case-sensitive. Numele fiecrei variabile va fi reinut aa cum va fi
ntlnit prima oar i apoi, la generarea rapoartelor, va fi utilizat ca atare.
Numele variabilelor, precum i ale seturilor de date nu pot fi mai mari de 32 de
caractere i trebuie s nceap cu o liter sau underscore ( _ ). Celelalte caractere ale
numelui pot fi litere, cifre sau underscore dar nu i caracterele spaiu, -, %
Seturile de date SAS (SAS data set) conin dou pri:
parte de descriere
o parte de dat ( nu numai valoarea ci i informaii despre aceasta ca lungimea,
eticheta i formatul).
Datele nu pot fi dect de dou tipuri numerice sau character.
n cadrul exemplului din slide 2 Declaraia LIBNAME furnizeaz produsului SAS
Entreprise Guide un pointer ctre o locaie de memorie a sistemului de operare unde sunt
stocate fiiere SAS. Dac datele sunt rezidente pe un sistem de operare Windows,
declaraia LIBNAME refer un director n care sunt stocate datele.
Seciunea de date DATA poate include declaraii care
creaz tabele SAS sau
manipuleaz tabele existente.
Dup cum se poate vedea n exemplul din slide 2 n aceiai seciune pot fi introduse
declaraii pentru mai multe tabele.

Procedura PRINT tiprete observaiile dintr-o tabel SAS utiliznd n acest scop, o
parte sau toate variabilele din aceasta. Procedura corespunde prelucrrii List Data din
cadrul opiunilor SAS Enterprise Guide.
Procedura MEANS calculeaz principalii indicatori statistici pentru diferite variabilele
numerice. Aceast procedur corespunde prelucrrii Summary Statistics din SAS
Enterprise Guide. O declaraie VAR (prescurtarea pentru variabile) furnizeaz procedurii
PROC MEANS o list de variabile de analiz (care trebuie s fie numerice) pentru care
vor fi calculate statisticile. Fara declaraia VAR procedura va calcula statisticile pentru
toate variabilele numerice ale setului de date.
Declaraia INFILE indic sursa de provenien a datelor, n exemplul din slide 2 discul
E directorul date sas, fiierul orders.txt.
Declaraia INPUT este una dintre cele patru metode diferite utilizate de SAS pentru
citirea rndurilor de date.
Programul din figura 2 utilizeaz metoda list input adecvat pentru valori de
date separate prin delimitatori.
- n SAS delimitatorul implicit este caracterul spaiu.
- SAS poate de asemenea s citeasc date separate prin ali delimitatori (de
exemplu sau tab) cu modificri minore n declaraia INFILE.
- Cnd se utilizeaz pentru citirea datelor metoda list input programatorul va
trebui numai s introduc numele pe care dorete s l atribuie fiecrei valori
de dat. Aceste nume se numesc nume de variabile i trebuie s respecte
regulile de sintax ale acestora.
- Este de remarcat faptul c semnul $ care urmeaz dup numele de variabil
Order_No specific faptul c valorile acestei variabile sunt de tip character.
Dac nu exist semnul $ motorul SAS presupune c valorile sunt numere i
vor fi stocate ca valori numerice SAS.
Seciunile DATA sau PROC se termin de obicei cu declaraia RUN, dar pentru anumite
platforme aceasta poate s lipseasc, o seciune considerndu-se c se termin acolo unde
ncepe o alt seciune DATA sau PROC.
n exemplul din slide 3 textul care urmeaz declaraiei TITLE, plasat ntre ghilimele
simple sau duble, va fi afiat la nceputul fiecrei pagini de ieiri SAS.
Dup cum s-a precizat mai sus, declaraia TITLE este o declaraie global ceea ce
nseamn c efectul ei nu se reduce la secunea din care ea face parte ci se propag n
ntreg mediul SAS pn cnd el va fi schimbat prin intermediul altei declaraii TITLE.
n acest context este bine s se plaseze o declaraie TITLE naintea fiecrei proceduri
care va produce ieiri pentru a uura citirea i nelegerea informaiilor din pagin.
Cnd se iese din sesiunea de lucru SAS titlurile se reseteaz i este nevoie s se introduc
noi declaraii TITLE dac ele sunt necesare.

Procedura FREQ (numit i PROC FREQ) este una dintre preocedurile built-in din
SAS. Ea numr frecvenele valorilor datelor unor variabile.
Pentru a indica care sunt variabilele implicate se va aduga o declaraie suplimentar:
TABLES (sau TABLE). Dup cuvntul TABLES, se enumr variabilele dorite. Dac
declaraia se omite procedura va calcula frecvenele pentru toate variabilele din setul de
date.
Vizualizarea codului
n cadrul unui proiect SAS, pot fi vizualizate toate elementele codului, dar pot fi editate
numai nodurile de cod (Code Node) care conin cod SAS, realiznd dublu-clik pe
acestea.
Un nod de cod poate include urmtoarele elemente:
copia codului generat de o prelucrare aferent unei opiuni SAS din proiect
un program SAS creat i salvat anterior
un cod creat de ctre utilizator
n cadrul unui proiect, un nod de cod vid poate fi inserat selectnd din meniul bar
opiunile File New Code.
Pentru a vizualiza ntreg codul necesar generrii unei prelucrri de ieire se vor selecta
opiunile Tools Options Task General Display all generated SAS code in
task output.
n SLIDE 8 este prezentat un exemplu de cod detaliat pentru generarea rezultatelor n
format HTML, PDF sau SAS.
n continuare va fi exemplificat modalitatea de vizualizare i o parte din sintaxa codului
generat de ctre SAS Entreprise Guide, pentru obinerea unui raport HTML prin
intermediul prelucrrii List Data. O dat realizat aceast prelucrare, ea va fi afiat n
fereastra Project Explorer (slide 9).
Pentru a vizualiza codul necesar generrii acestui rezultat se va realiza dublu-click pe
pictograma Code din cadrul procedurii List Data. n mod implicit, n fereastra Process
Flow nu sunt afisate codul i log-ul prelucrrii, ele putnd fi accesate realiznd clickdreapta pe pictograma aferent ei i selectnd opiunea Open Code.
n Slide 10 este prezentat codul aferent procedurii PRINT.
Dup cum se poate observa n figur, PROC PRINT reprezint numele unei seciuni de
cod n cadrul creia exist mai multe opiuni sau declaraii care au urmtoarele
semnificaii:
opiunea DATA - definete tabela SAS care se va fi utilizat n prelucrare

opiunea OBS - definete o etichet pentru numrul observaiei din cadrul


coloanei (n cazul n care acest numr va fi afiat)
opiunea LABEL - utilizeaz etichetele variabilelor ca i cap de tabel
declaraia VAR - corespunde rolului List Variables i indic numele variabilelor
care vor fi utilizate n procedur
declaraia BY - corespunde rolului Group Table By indicnd numele variabilei de
grupare
declaraia ID - corespunde rolului Identifying Label
declaraia LABEL - asigneaz o etichet temporar unei anumite variabile
declaraia RUN - ncheie seciunea PROC PRINT

n Slide 11este prezentat codul generat de prelucrarea One-Way Frequencies.


n cadrul acestei secvene de tip procesur (denumit FREQ) se pot observa
urmtoarele opiuni i declaraii:
opiunea DATA- definete tabela SAS care va fi utilizat n cadrul procedurii
declaraia TABLES este corespunzroare rolului Analysis Variables
declaraia RUN ncheie seciunea PROC FREQ.

Editarea codului SAS


n cadrul unui proiect, utilizatorul poate realize urmtoarele activiti:
s insereze cod, n mod automat, nainte sau dup execuia unei prelucrri sau a unui
program
s editeze codul oricrui program creat prin intermediul unei prelucrri, sau a
instrumentelor Import Wizard sau Query Builder
s insereze programe SAS deja existente, ca noduri de cod, n cadrul unui proiect
s exporte codul unei prelucrri sau chiar a unui ntreg proiect ctre un fiier
Codul SAS asociat unei prelucrri este read-only, drept urmare el nu poate fi modificat.
ncercarea de a realiza acest lucru genereaz apariia mesajului din SLIDE 12 prin care
utilizatorul este ntrebat dac dorete s creeze o copie modificabil a codului respectiv.
Dac rspunsul va fi afirmativ, codul va fi copiat ntr-un nod de cod posibil de modificat
(SLIDE 13).
Noul nod de cod creat nu este asociat cu prelucrarea iniial, drept urmare modificrile
realizate n acesta, precum i cele efectuate n cadrul prelucrrii originale (prin
intermediul ferestrei ei de dialog) nu se vor influiena reciproc.
Noul cod creat va putea fi executat pe server-ul local sau pe oricare server disponibil.
Rezultatele i log-ul aferente noului nod de cod vor fi incluse n arboreal proiectului,
vizibil n fereastra Project Explorer.

Personalizarea codului unei prelucrri


n cadrul ferestrelor de dialog ale unei prelucrri SAS, se poate selecta butonul Preview
code pentru a previzualiza codul generat de aceasta (slide 16) i butonul Insert Code
al ferestrei de previzualizare pentru a insera un nou cod n cel deja existent (slide 16).
n fereastra User Code se va selecta poziia n care se va insera codul i acesta va fi
inclus ca parte a programului prelucrrii (slide 16).
Inserarea automat de cod se poate aplica numai prelucrrilor i interogrilor.
Utilizatorul poate seta opiuni similare pentru a insera automat cod personalizat, nainte
sau dup codul scris prin intermediul editorului de cod, prin selectarea opiunii SAS
Programs (Tools Options Custom Code) slide 17

S-ar putea să vă placă și