Documente Academic
Documente Profesional
Documente Cultură
Prin filtrarea datelor se înţelege reţinerea, dintr-un set de date, numai a acelora care îndeplinesc
un anumit criteriu. De exemplu, în exemplul de mai sus, a fost creat un raport care conţine
nivelul stocului la toate produsele, dar utilizatorul doreşte să se vizualizeze numai produsele
pentru care este nevoie de reaprovizionare. Pentru a se realiza acest lucru, este nevoie să se reţină
numai rândurile care îndeplinesc un anumit criteriu, bazat pe valorile dintr-o coloană (figura
IV.4.38). În Query Builder, selectarea rândurilor poartă numele de setarea unui filtru.
Pentru a determina dacă produsul trebuie reaprovizionat, trebuie verificat dacă numărul de unităţi
din stoc a scăzut sub nivelul de reaprovizionare, fără a se fi lansat o comandă de reaprovizionare.
Pentru a modifica raportul este necesar să se seteze un filtru prin care să se verifica cele două
condiţii, anume:
Unităţi în stoc <= Nivelul de reaprovizionare.
Unităţi comandate = 0.
Când se creează mai multe filtre, trebuie să se specifice dacă relaţia dintre filtre este de tip “şi”
(AND) / “sau” (OR). În exemplul de mai sus sunt necesare ambele condiţii, deci relaţia va fi
AND. Trebuie remarcat faptul că, atunci când se combină mai multe filtre, relaţia AND este
implicită.
În exemplul precedent, deja a fost creată o interogare cu denumirea Valoare Stoc care generează
un raport cuprinzând stocul produselor. Să presupunem că se doreşte să fie afişate numai
produsele pentru care este necesară reaprovizionarea. În acest caz este necesară definirea unei
condiţii de filtrare prin care să se afişeze numai rândurile (produsele) pentru care valorile din
coloana Unităţi în stoc să fie mai mici decât valorile din coloana Nivel de reaprovizionare.
Pentru aceasta se vor urma următorii paşi:
1. În fereastra Project Tree, se realizează clic dreapta pe Valoare Stoc, apoi se selectează
Modify Valoare Stoc pentru a redeschide şi a modifica interogarea.
2. Se dă clic pe tab-ul Filter Data (figura IV.4.39.).
Definirea unei a doua condiţii de filtrare, care va conţine numai rândurile pentru care valoarea
din coloana NumărUnităţiComandă este egală cu 0, se realizează în felul următor (figura
IV.4.42.):
1. În lista de coloane se efectuează dublu-clic pe NumărUnităţiComandă.
2. Se efectuează clic în box-ul Value şi se introduce valoarea 0.
3. Clic OK.
Figura IV.4.42. Realizare filtru
În figura IV.4.42. se poate observa că în cadrul clauzei WHERE, cele două condiţii sunt
combinate prin intermediul operatorului AND. Dacă s-ar dori (ceea ce nu este cazul în exemplul
de faţă) schimbarea operatorului, ar trebui urmaţi paşii de mai jos:
5. Se efectuează clic pe operatorul AND dintre cele două condiţii de filtrare. Prin această
operaţie se va deschide un meniu prin care se permite schimbarea relaţiei dintre filtre
(figura IV.4.44.).
Figura IV.4.44. Schimbarea combinaţiei condiţiilor de filtrare
1. Se efectuează clic pe butonul Run. Când va apărea întrebarea dacă se doreşte înlocuirea
interogării precedente cu noua interogare se va efectua clic pe butonul No. Astfel, în
proiect se va crea o nouă interogare care va trebui redenumită Produse de comandat.
2. Vizualizare rezultate: în raport sunt incluse numai rândurile (produsele) care corespund
ambelor condiţii (figura IV.4.45.).
Tabelele care participă la joncţiune trebuie să aibă cel puţin o coloană comună. Această
coloană trebuie să conţină valori care să se potrivească exact sau care să poată fi cu
uşurinţă comparate între tabele (figura IV.4.46.).
Când utilizatorul încearcă să adauge o tabelă cu care Query Builder nu poate realiza în mod
automat joncţiunea, va deschide fereastra Tables and Joins. Pentru a realize joncţiunea dintre
tabele se va executa clic-dreapta pe coloana din prima tabelă şi se va selecta opţiunea Join
[column-name] with apoi, din meniu se va selecta coloana corespondentă din cealaltă tabelă.
O altă modalitate de a realize joncţiunea este de a selecta numele coloanei din una dintre tabele,
apoi, ţinând apăsat butonul stâng al mouse-ului, se va muta pointerul pe numele coloanei
corespunzătoare din cealaltă tabelă.
În tabelul IV.3. sunt prezentate tipurile de joncţiuni posibil de realizat într-o interogare. Zona
întunecată marchează rândurile pe care le va returna ca ieşire tipul respectiv de joncţiune.
Tabelul III.3. Tipurile de joncţiuni
Tip joncţiune Rânduri returnate de rezultatul interogării
inner Numai rândurile care au corespondent
Tabela1 Tabela 2
Tabela
Tabela 2
1
Tabela
Tabela 2
1
Tabela
Tabela 2
1
În fereastra Tables and Joins se pot vedea care sunt coloanele pentru realizarea joncţiunii
tabelelor (figura IV.4.51.).
Figura IV.4.51. Fereastra Tables and Joins
5) Se execută clic pe simbolul joncţiunii pentru a deschide o fereastră care oferă mai multe
informaţii specifice în legătură cu tipul joncţiunii şi coloanele utilizate (figura IV.4.52.).
În acest exemplu, în interogarea Produse de comandat care a fost creată pentru a afla informaţii
referitoare la furnizori, Query Builder a realizat în mod automat joncţiunea între două tabele
după coloana codfurnizor. Oricum, uneori este nevoie să se realizeze joncţiunea dintre tabele
care nu conţin coloane cu acelaşi nume. Dacă tabelele au acelaşi tip de date, joncţiunea poate fi
realizată manual.
În exemplul anterior, interogarea Stoc Produse, a generat un raport al nivelului stocurilor pentru
toate produsele. În acest moment, în plus, se doreşte să se includă în raport şi numele categoriei
de produse. Tabela Produse conţine o coloană care conţine codurile categoriilor. Tabela
Categorii Produse are o coloană care conţine codurile categoriilor şi o altă coloană conţinând
numele categoriilor de produse.
Se va realiza joncţiunea dintre tabele manual şi produsele din raport vor fi sortate întâi după
numecategorie şi apoi în ordinea descrescătoare ale valorilor variabilei valoarestoc. Pentru a
realiza acest lucru vor fi urmaţi următorii paşi:
1. În fereastra Project Tree, se execută clic dreapta pe interogarea Produse de comandat
pentru a o deschide şi a o modifica (Modify Produse de comandat).
2. Se execută clic pe butonul Add Tables.
3. În fereastra Open Data, se selectează Project.
4. În fereastra Add From Project, se execută dublu-clic pe tabela Categori produse.
5. Pe ecran se va deschide o fereastră de mesaj care va informa utilizatorul că va realiza
joncţiunea tabelelor manual. Se va efectua clic pe butonul OK (figura IV.4.54).
6. În lista coloanelor din tabela Produse se realizează clic pe numele coloanei codcategorie
se ţine mouse-ul apăsat până cursorul ajunge deasupra câmpului codcat din tabela
Categorii Produse (figura IV.4.55).
Se poate observa că recodificarea unei coloane este similară cu aplicarea unui format utilizator la
o coloană. Aplicarea unui format pe o coloană schimbă modul de afişare a valorilor datelor, în
timp ce recodificarea duce la adăugarea unei coloane noi.
În continuare, se va explicita modul de recodificarea a datelor. În următorul exemplu se va
urmări să se determine informaţii referitoare la profitul din vânzări, obţinut din produsele interne
sau din import. Tabela FurnizoriInfo conţine o coloană, numită ţară, care reprezintă ţara de
provenienţă a furnizorului produselor. Pentru a afişa datele din coloana ţară, fie ca achiziţie
internă fie ca achiziţie import, se va adăuga o nouă coloană, numită sursa, prin recodificarea
valorilor din coloana ţară. Valoarea România va fi recodată ca achiziţie internă, iar celelalte
valori ca achiziţie import. Coloana ţară rămâne neschimbată.
Se va realiza o interogare pentru a afla care a fost profitul obţinut din comenzile de produse
realizate prin achiziţie internă sau prin achiziţie din import. În acest scop, va fi de preferat să se
creeze, mai degrabă, o tabelă de date (data table) decât un raport HTML, deoarece această
tabelă va putea fi folosită ca intrare pentru o prelucrare a SAS Enterprise Guide care va realiza
un raport agregat sub formă tabelară (Summary Table).
3. În fereastra Select Item, se selectează coloana ţară, apoi se execută clic pe Next.
4. În fereastra Specify a Replacement, se execută clic pe Add (figura IV.4.57).
10. În fereastra Summary of properties se execută clic pe butonul Finish, apoi Run şi se
obţine situaţia din figura IV.4.60.
Pentru a creea, ca ieşire din interogare, o tabelă de date şi nu un raport HTML, se va trece de
opţiunea implicită a interogării astfel:
1. În fereastra Query Builder, se execută clic pe butonul Options şi se selectează
Options for This Query (figura IV.4.62).
În acest raport, pentru fiecare produs se doreşte afişarea profitului mediu şi a profitului total,
precum şi numărul de comezi aferent lui. În plus, nu se vor mai repeata informaţiile Achiziţie
internă sau Achiziţie Inport pentru fiecare produs ci o singură dată pentru fiecare categorie.Dacă
se va încerca să se creeze acest raport direct din rezultatele interogării, se vor putea calcula
statistici descriptive (Descriptive Statistics) prin utilizarea mai multor coloane, dar nu se va
putea obţine prezentarea sub forma dorită. O alternativă este utilizarea prelucrării Summary
Tables pentru crearea raportului.
Pentru a o face mai uşor de utilizat, funcţia de prelucrare Summary Tables are o versiune de
tip wizard. Wizard-ul Summary Tables nu are toate opţiunile de formatare ale funcţiei
Summary Tables, dar poate fi util pentru multe rapoarte.
Utilizarea wizard-ului Summary Tables pentru a realiza un raport pe baza unei
interogări
Se doreşte realizarea unui raport formatat care să evidenţieze profitul mediu şi profitul total
rezultate din vânzarea fiecărui produs, grupate pe sursele de achiziţie. Pentru realizarea acestui
raport se va utiliza wizard-ul Summary Tables, urmând paşii de mai jos:
1. În fereastra Project Explorer, se selectează datele de ieşire ale interogării pentru a le
activa.
2. Se selectează Tasks Describe Summary Tables Wizard… (figura IV.4.65.).
Figura IVI.4.65. Selectarea wizard-ului Summary Tables
Se urmăreşte să se afle profitul generat de vânzările produselor din anume categorii. Acest lucru
poate fi realizat în două variante şi anume:
să se utilizeze un filtru, pentru a selecta datele aparţinând unei anumite categorii de produse
şi apoi, de fiecare dată când se doreşte vizualizarea rezultatelor din diferite categorii, să se
editeze condiţia de filtrare.
Filtru
Coloană Operator Valoare
NumeCategorie = &Categorie
Parametrii pot fi creaţi, în Query Builder, prin intermediul ferestrei Parameters Manager,
care poate fi deschisă din meniul Tools prin selecţia opţiunii Parameters.
De exemplu, pentru a crea o interogare care să genereze profitul realizat de o anumită categorie
de produse, selectate de utilizator în momentul execuţiei interogării, se va realiza un parametru
pentru variabila NumeCategorie, respectiv o listă cu categoriile de produse, iar apoi un filtru
care va utiliza valorile stocate în parametru. În acest scop se vor urma paşii de mai jos:
Crearea parametrului
2. Se execută clic pe butonul Add din fereastra Prompt Manager (figura IV.4.74).
9. Se încarcă lista de variabile din setul de date sursă şi apoi se execută clic pe butonul
OK (figura IV.4.78).
Crearea filtrului
Produs
Furnizori
e
Produs
Furnizori
e
Box-ul Variables to assign listează variabilele (coloanele) din setul de date. Pictograma
alăturată fiecărei variabile indică tipul acesteia şi anume reprezintă o variabilă de tip
character, o variabilă de tip numeric în format timp, o variabilă de tip numeric în format
dată, iar o variabilă de tip numeric în format monedă.
Box-ul Task roles listează modurile în care variabilele pot fi utilizate de către prelucrare.
Pentru a putea fi executată a anumită prelucrare, este necesar ca cel putin o variabilă să fie
selectată în rolul List variables.
Pictogramele din dreptul fiecărui rol indică tipul de variabilă care poate fi alocat acelui rol. De
exemplu, rolul List variables acceptă toate tipurile de variabile, dar rolul Total of acceptă
numai variabile numerice.
Atribuirea variabilelor la roluri se realizează prin tragerea lor din lista Variables to assign în
rolul adecvat aflat în lista Task roles. Dacă unui anumit rol au fost asignate mai multe
variabile, acestea pot fi ordonate prin intermediul butoanelor cu săgeţi.
Pentru anumite roluri, numărul de variabile care le pot fi asignate este limitat, caz în care limita
este indicată sub numele rolului. De asemenea, pentru fiecare prelucrare există mai multe opţiuni
care, în panelul de selecţie, sunt grupate pe categorii. Multe dintre prelucrări pemit specificarea
de titluri şi de footnote-uri pentru rezultatele aferente lor.
Din moment ce au fost asignate variabile la roluri şi au fost setate opţiunile prelucrării, SAS
Enterprise Guide generează cod SAS pe care utilizatorul îl poate vizualiza prin intermediul
butonului Preview code.
Prin utilizarea butonului Run, codul este trimis motorului SAS şi executat. După execuţie,
utilizatorul poate accesa datele de intrare, precum şi toate ieşirile prelucrării făcând clic pe tab-
urile din zona de lucru.
Deşi, când se execută prelucrarea fereastra aferentă ei se închide, selecţiile făcute sunt salvate şi
se poate redeschide prelucrarea prin utilizarea butonului Modify Task din panelul de
instrumente al zonei de lucru.
Dacă prelucrarea nu este deschisă în zona de lucru, ea se poate redeschide şi făcând clic-dreapta
pe numele ei din zona aferentă arborelui proiectului (Project Tree) şi selectând opţiunea
Modify task-name.
Rezultatele prelucrării pot fi exportate sau trimise prin e-mail din zona aferentă arborelui
proiectului (Project Tree) sau din cea aferentă fluxului de process (Process Flow).
Rezultalele pot fi exportate ca raport într-un fişier în format SAS Report (*.srx) sau în alte
formate ca html, xml sau pdf (figura IV.5.2.).
Trimiterea rezultatelor se face prin e-mail, putându-se opta pentru una dintre cele trei variante: e-
mail recipient – prin care se trimite o arhiva .zip care conţine documentul raport SAS cu
extensia .srx, e-mail recipient as a step in project sau documente Word, Excel, Power
Point.
De asemenea, parametrii permit utilizatorului să furnizeze numele unei variabile pentru a rula o
prelucrare sau o valoare pentru expresia unui filtru într-o interogare sau program.
La momentul execuţiei, pentru fiecare parametru se generează una sau mai multe macro-
variabile. Definirea unui parametru se poate realiza selectând din meniul View opţiunea
Prompt Manager.
Rapoartele compuse permit combinarea rezultatelor mai multor prelucrări din proiect într-un
singur document. Facilitatea se accesează selectând opţiunile File ð New ð Report (figura
IV.5.6.).
Figura IV.5.6. Raport compus
Atunci când se previzualizează sau salvează documentul, SAS Enterprise Guide include
rezultatele HTML create la ultima execuţie a fiecărei prelucrări. Documentul este actualizat
dinamic.
Prin intermediul funcţiei Summary Statistics pot fi realizate un raport, care poate include
histograme şi, la alegere, prin opţiunea Save statistics to dataset, un set de date în format SAS,
care poate fi exportat în Microsoft Excel (figura IV.5.7.).
Figura IV.5.7. Rezultate Summary Statistics
În plus, prin setarea opţională (Group variable) şi intermediul butonului Advanced, sunt
oferite următoarele facilităţi:
Group variable - pentru fiecare grup vor fi generate statistici descriptive separate.
Grupurile vor fi determinate prin intermediul valorilor variabilelor asignate acestei
facilităţi.
Frequency count - se va analiza frecvenţa de apariţie a unei variabile.
Relative weight - se va defini o variabilă ale cărei valori vor fi utilizate pentru a calcula
medii ponderate, dispersii şi sume.
Copy Variable - variabilele asignate acestei facilităţi vor fi incluse ca valiabile adiţionale în
setul de date de ieşire.
Prin intermediul acestei prelucrări, utilizatorul poate opta pentru obţinerea anumitor statistici şi
rezultate (figurile IV.5.10. şi IV.5.11.)
indicarea unor combinaţii specifice pe baza cărora vor fi sintetizate datele (Specify
ways)
De exemplu, dacă se selectează trei variabile pentru clasificare, utilizatorul poate specifica toate
combinaţiile, două variabile sau trei variabile prin introducerea în câmpul text a cifrelor 1, 2 sau
3. Dacă sumarizarea se face după 0 variabile, se vor calcula statisticile pentru întreg setul de
date.
Prelucrarea Summery Tables afişează statisticile descriptive, pentru una sau mai multe variabile,
sub forma unui tabel tabular (figura IV.5.14).
Figura IV.5.14. Prelucrarea Summary Tables
În cadrul acestei prelucrări, utilizatorul poate seta variabilele analizate, statisticile care vor fi
calculate precum şi forma raportului (figura IV.5.15).
Variabilele analizate trebuie să fie întodeauna numerice. Variabilele de clasificare sunt, de obicei
de tip caracter sau numerice discrete, dar pot fi şi valori numerice continue care au aplicat un
format discret.
Modul în care se selectează variabilele analizate, statisticile precum şi variabilele de clasificare
se poate observa în figurile IV.5.16. şi IV.5.17.
Figura IV.5.16. Selectarea statisticilor
Includerea tipurilor de totaluri pentru coloane, rânduri şi pagini se poate realiza conform figurii
IV.5.18.
Rolul Summary Tables se foloseşte pentru a modifica etichetele, fonturile şi formatele din
tabela rezultatelor (figura IV.5.19).
asignarea unui format de afişare specific la fiecare statistică descriptivă, în mod individual
Setul de date de intrare sunt formate din înregistrări din 10 în 10 minute, începând de la
01.01.2014 până la 31.03.2014 (ora 19:50) a puterii produse de un panou solar pentru asigurarea
apei calde menajere. Datele au fost prelucrate, puterea generată fiind raportată la puterea maximă
generată.
În exemplul următor vom realiza prognoza pe termen scurt pentru următoarele 23, respectiv 12
de intervale de timp (cca. 4, respectiv2 ore).
Importăm în SAS datele de intrare (peste 50,000 de înregistrări) stocate într-un fişier în format
.xlsx.
În continuare, sunt descrise câteva forme ale modelului ARIMA(p,d,q):
- model autoregresiv ARIMA(p,0,0) , de ordin p. Această componentă este adecvată pentru
procese sau fenomene repetabile;
- model cu medie mobilă ARIMA(0,0,q), de ordin q. Această componentă este adecvată
pentru procese sau fenomene mai puţin predictibile;
- model mixt ARIMA (p,0,q), cunoscut şi ca ARMA;
- model autoregresiv integrat şi medie mobile ARIMA(p,d,q), unde d este ordinul de
diferenţiere.
Pentru a aplica modelul ARIMA (1,0,0), vom selecta Tasks à Time Series àArima
Modeling and Forecasting (figura IV.5.21.).
În tabul Output Data (figura IV.5.24.) exportăm rezultatele într-un fişier Excel pentru a calcula
eroarea medie absolută în procente - MAPE (Mean Absolute Percentage Error). Se vor
prelua din setul de date complet efectiv înregistrate din 31.12.2014 (de la 20:00 la 23:50) şi se
vor compara cu datele din aceeaşi perioadă, prognozate cu modelul ARIMA.
Acest indicator statistic arată acurateţea modelului. MAPE (eroarea medie absolută în procente)
calculat pentru 4 ore din 31.12.2014 este 13,32%, iar MAPE pentru 2 ore este 9,58%.
Pentru a aplica modelul ARIMA (1,1,1), pornind de la fişierul importat
time_series_prognoza.xlsx, vom selecta Tasks à Time Series àArima Modeling and
Forecasting.
Câmpul Format name - Numele formatului trebuie să înceapă cu o literă sau cu caracterul
underscore şi nu se poate termina cu o cifră. Pentru un set complet de reguli pentru nume se va
selecta opţiunea Help din procedura Create Format.
Opţiunea Currently assigned libraries. WORK (temporary) – Implicit există numai pe
durata unei sesiuni SAS Enterprise Guide. Când se încheie sesiunea, formatul este şters. Aceasta
înseamnă că dacă se închide sesiunea de lucru apoi se redeschide, pentru a putea utilizeze
formatul, trebuie reexecutată procedura Create Format.
În fereastra Define formats (figura IV.5.27.), se construieşte o tabelă de corespondenţă pentru
a asocia valorile datelor cu valorile formatate. Se defineşte o etichetă pentru a specifica textul
care va fi afişat în locul datelor originale.
Tipuri de coloane
Discrete - acceptă valori singulare, de exemplu Europa sau OK.
Range - acceptă o valoare limita-minimă, cum ar fi 100 şi o valoare limită-maximă, ca 200,
pentru a defini o gamă de valori. Punctele extreme pot fi proiectate ca inclusive sau exclusive.
Trebuie remarcat faptul ca definiţiile formatului sunt case-sensitive. Prin urmare textul furnizat
prin intermediul câmpului Values al procedurii Create Format trebuie să fie identic cu textul
din coloana sau coloanele din tabela de date asupra cărora se va aplica formatul.
Dacă în coloana tabelului sunt stocate valori într-o varietate de forme, de exemplu OK, ok, oK
sau Ok, utilizatorul trebuie să definească, în definiţia formatului, fiecare variantă posibilă.
Utilizarea metodei de a specifica un format de coloană se aplică numai în cazul unei prelucrări
particulare (figura IV.5.29.).
Fişierele cu care lucrează SAS la nivel de cod sunt de două tipuri pricipale care sunt reliefate şi
în Figura IV.6.3.: preluate, adică importate din alte aplicaţii (externe), şi fişiere generate de
către SAS (interne), care pot fi temporare (stocate în librăria Work) sau permanente (stocate în
alte librării sau directoare decât Work).
ASCII
Externe Fişiere generate de alte
aplicaţii
Fişiere în SAS
Interne Temporare – nume pe un
nivel
Permanente - nume pe nouă
niveluri (libref.nume)
În cadrul exemplului din figura IV.6.4. declaraţia LIBNAME furnizează produsului SAS
Entreprise Guide un pointer către o locaţie de memorie a sistemului de operare unde sunt stocate
fişiere SAS. Dacă datele sunt rezidente pe un sistem de operare Windows, declaraţia LIBNAME
referă un director în care sunt stocate datele.
Secţiunea de date DATA poate include declaraţii care generează tabele SAS sau manipulează
tabele existente. În aceeaşi secţiune pot fi introduse declaraţii pentru mai multe tabele.
Procedura PRINT tipăreşte observaţiile dintr-o tabelă SAS utilizând în acest scop o parte sau
toate variabilele din aceasta. Procedura corespunde prelucrării List Data din cadrul opţiunilor
SAS Enterprise Guide.
Procedura MEANS calculează principalii indicatori statistici pentru diferite variabile numerice.
Această procedură corespunde prelucrării Summary Statistics din SAS Enterprise Guide.
Declaraţia VAR (prescurtarea de la variabile) furnizează procedurii MEANS o listă cu variabile
de analiză (care trebuie să fie numerice) şi pentru care se doreşte calcularea de statistici. Fără
declaraţia VAR, procedura MEANS calculează statistici pentru fiecare variabilă numerică din
setul de date.
Declaraţia INFILE indică sursa de provenienţă a datelor, în exemplul din figura IV.6.4. aceasta
este discul E, directorul date sas, fişierul comenzi.txt.
Declaraţia INPUT este una dintre cele patru metode diferite utilizate de SAS pentru citirea
rândurilor de date. Programul din figura IV.6.4. utilizează metoda “list input” adecvată pentru
valorile de date separate prin delimitatori. În SAS delimitatorul implicit este caracterul spaţiu.
SAS poate, de asemenea, să citească date separate prin alţi delimitatori (de exemplu “ sau tab) cu
modificări minore în declaraţia INFILE.
Când se utilizează pentru citirea datelor metoda “list input”, programatorul va trebui numai să
introducă numele pe care doreşte să îl atribuie fiecărei 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ă Nr_Comandă
specifică faptul că valorile acestei variabile sunt de tip caracter. Dacă nu există semnul $,
motorul SAS presupune că valorile sunt numere şi vor fi stocate ca valori numerice SAS.
Secţiunile DATA sau PROC se termină de obicei cu declaraţia RUN, dar pentru anumite
platforme aceasta poate să lipsească, o secţiune considerându-se că se termină acolo unde începe o
altă secţiune DATA sau PROC.
În exemplul din figura IV.6.4., textul care urmează declaraţiei TITLE, plasat între ghilimele
simple sau duble, va fi afişat la începutul fiecărei pagini de rezultate SAS. După cum s-a precizat
mai sus, declaraţia TITLE este o declaraţie globală, ceea ce înseamnă că efectul ei nu se reduce
la secţiunea din care ea face parte, ci se propagă în întreg mediul SAS până când el va fi
schimbat prin intermediul altei declaraţii TITLE. În acest context este bine să se plaseze o
declaraţie TITLE înaintea fiecărei proceduri care va produce ieşiri pentru a uşura citirea şi
înţelegerea informaţiilor din pagină. Când se iese din sesiunea de lucru SAS, titlurile se resetează
şi este nevoie să se introducă noi declaraţii TITLE, dacă ele sunt necesare.
IV.6.2. Vizualizarea codului
În cadrul unui proiect SAS, pot fi vizualizate toate elementele codului, dar pot fi editate numai
nodurile de cod (“Code Node”) care conţin cod SAS, realizând dublu-clic pe acestea.
Un nod de cod poate include următoarele elemente:
copia codului generat de o prelucrare aferentă unei opţiuni SAS din proiect;
un program SAS creat şi salvat anterior;
un cod creat de către utilizator.
În cadrul unui proiect, un nod de cod vid poate fi inserat selectând din meniul bară opţiunile File
ð New ð Code.
Pentru a vizualiza codul generat de o prelucrare, se realizează clic drepta pe numele prelucrării din
fereastra arborelui proiectului sau a fluxului de proces, şi se selectează opţiunea Open ð Open
Last Submitted Code (figura IV.6.5).
Implicit, se poate vizualiza codul generat de o prelucrare SAS, aşa cum arată şi figura IV.6.6, în
care este prezentat codul asociat unei prelucări de tipul List Data.
declaraţia VAR - corespunde rolului List Variables şi indică numele variabilelor utilizate în
procedură;
declaraţia BY - corespunde rolului Group Table By indicând numele variabilei de grupare;
În figura IV.6.8 este prezentat un exemplu de cod detaliat pentru generarea rezultatelor în format
HTML, RTF sau SAS.
Figura IV.6.8. Fragment din codul detaliat generat de o prelucrare
să insereze cod, în mod automat, înainte sau după execuţia unei prelucrări sau a unui
program;
să editeze codul oricărui program creat prin intermediul unei prelucrări 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 prelucrări sau chiar a unui întreg proiect către un fişier;
să creeze cod de la zero într-un nod de cod.
Codul SAS asociat unei prelucrări este read-only, drept urmare el nu poate fi modificat.
Încercarea de a realiza acest lucru generează apariţia mesajului din figura IV.6.9 prin care
utilizatorul este întrebat dacă doreşte să creeze o copie modificabilă a codului respectiv.
Dacă răspunsul va fi afirmativ, codul va fi copiat într-un nod de cod posibil de modificat (figura
IV.6.10).
Figura III.6.10. Crearea unei copii a codului generat de o prelucrare
Noul nod de cod nu este asociat cu prelucrarea iniţială, drept urmare modificările realizate în
acesta, precum şi cele efectuate în cadrul prelucrării originale (prin intermediul ferestrei de dialog)
nu se vor influenţa 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 arborele proiectului, vizibil în fereastra
Project Explorer.
În cadrul ferestrelor de dialog ale unei prelucrări SAS, se poate selecta butonul Preview code
pentru a previzualiza codul generat de aceasta (figura IV.6.11) şi fereastra de previzualizare
pentru a insera un nou cod în cel deja existent (figura IV.6.12).
Inserarea automată de cod se poate aplica numai prelucrărilor şi interogărilor. Utilizatorul poate
seta opţiuni similare pentru a insera automat cod personalizat, înainte sau după codul scris prin
intermediul editorului de cod, prin selectarea opţiunii SAS Programs (Tools ð Options ð
Custom Code) precum în figura IV.6.13.