Sunteți pe pagina 1din 8

Seminar 2 SAS Enterprise Guide

1. Lucrul cu tabele SAS în Grila de Date (Data Grid)

Scop: Crearea unei tabele SAS prin rularea unui program SAS. Folosirea Grilei de Date pentru : a) a
şterge linii şi coloane, b) a modifica atribute ale coloanelor, c) a sorta tabele, d) a crea noi coloane
folosind Expression Builder.

Problemă: Să se creeze pornind de la un cod sursă SAS tabela UPDATEORDERS, iar ulterior să se
efectueze următoarele modificări asupra acesteia:
 Ştergerea coloanei UnitsInStock
 Ştergerea comenzii cu numărul 0713.
 Adăugarea coloanei venituri (Revenue) ca produs dintre cantitate şi preţul de vânzare.
 Sortarea tabelei după numele produsului.
1. Paşi de urmat:
2. Inseraţi în proiect un program care creează o tabelă SAS. Selectaţi File  Open  Program... din
meniu. Selectaţi Local Computer.
3. Selectaţi fişierul CreateDataTable.sas  Open.
4. Apăsaţi butonul Run sau tasta F8 pentru a rula programul.
Se creează şi se adaugă la proiect o nouă tabelă numită UPDATEORDERS. Iniţial, tabela se află în
modul read-only. Pentru a trece în modul Update, astfel încât să puteţi edita tabela, debifaţi
opţiunea EditProtect Data, pentru a schimba modul de protecţie a fişierului de date.

Observaţie: Atunci când modificaţi o tabelă în Grila de Date, modificaţi valorile efective ale datelor
din tabelă. Salvaţi o copie a tabelei, atunci când aveţi nevoie să păstraţi o copie a datelor
originale.
5. Selectaţi Yes din fereastra care vă apare pentru a comuta în modul Update.
6. Ştergeţi coloana UnitsInStock făcând click dreapta pe numele coloanei şi selectând opţiunea de
ştergere.
7. Ştergeţi rândul corespunzător comenzii anulate cu numărul 0713. Selectați numele coloanei
OrderNum, şi apoi EditFind… din bara de meniu şi căutați comanda dorită. După selectare, faceţi
click dreapta pe observaţie şi selectaţi opţiunea de ştergere.
8. Modificaţi numele şi eticheta asociate coloanei AcctNumber, făcând click dreapta pe numele
coloanei şi selectând proprietăţile acesteia. Schimbaţi cele două proprietăţi în CustID şi respectiv
Customer ID.

Notă: Implicit, în Grila de Date şi în casetele de dialog ale prelucrărilor sunt afişate numele coloanelor.
Pentru a afişa etichetele acestora., selectaţi opţiunea Use labels for column names din
meniul Tools  Options, tab-ul DataData General
9. Inseraţi o nouă coloană după SellPrice: Click dreapta pe numele SellPrice, Insert Column …
10. Coloana nouă este de tip monedă, şi reprezintă produsul dintre cantitate şi preţul de vânzare.
Expresia după care se calculează se scrie în câmpul Expression.
11. Modificaţi formatul de afişare a noii variabile, astfel încât să afişeze semnul $ în faţa valorii, să pună
virgula separatoare pentru mii şi să admită trei cifre zecimale.
12. Sortaţi datele după numele produsului. (Butonul Filter and Sort)
13. Reveniţi la modul read-only în care datele sunt protejate.

14. Salvaţi proiectul.

2. Importul fişierelor flat (text, HTML)


Scop: Importul a diferite tipuri de fişiere flat în SAS Enterprise Guide.

Tipuri de fişiere importate:


Un fişier text cu lăţime fixă are un format specific care permite salvarea datelor/informaţiilor textuale
într-o manieră organizată. Este un tip special de fişier în care formatul este definit de lăţimea coloanei,
de caracterele folosite pentru spaţiere şi de alinierea la stânga sau dreapta. Lăţimea coloanei este
specificată sub forma unui număr de caractere. Spaţierea datelor se face folosind caracterul spaţiu (sau
orice caracter se doreşte) în cazul în care datele ocupă mai puţine caractere decât lăţimea specificată
pentru coloana respectivă. Se creează programabil.

Într-un fişier text delimitat fiecare linie de text reprezintă o înregistrare, iar câmpurile sunt separate prin
caractere cunoscute. Delimitatori frecvent utilizaţi sunt caracterul tab (\t) sau diferite caractere de
punctuaţie. Delimitatorul trebuie întotdeauna să fie un caracter care nu se regăseşte în date. Se pot crea
într-un editor de text sau folosind aplicaţii de calcul tabelar sau pentru baze de date (ex. Microsoft Excel,
Microsoft Access). Considerăm ca exemplu un fişier text care conţine numele, prenumele şi vârsta
persoanelor, delimitate prin simbolul linie verticală (|):
Popescu|Maria|35
Ionescu|Damian|42
Diamandescu|Victor|29

Problema 1: Într-un proiect nou să se importe sursa de date Orders.txt. Acesta este un fişier text de
lăţime fixă care conţine comenzile referitoare la produsele companiei ABC din trimestrul curent.
Prezentarea câmpurilor fişierului este următoarea:
Câmpul 1: Numărul comenzii, poziţia 1-5
Câmpul 2: Numărul de identificare al produsului, poziţia 7-10
Câmpul 3: Cantitatea comandată, poziţia 13-15
Câmpul 4: Preţul de vânzare, poziţia 17-22
Câmpul 5: Venit, poziţia 25-32

Paşi de urmat:
1. În proiectul activ se vor selecta, din meniul opţiunea File  Import Data…, apoi se selectează Local
Computer şi se alege locaţia unde aţi salvat datele de lucru.
2. Pentru a începe importul fişierului text, se marchează fişierul orders.txt şi apoi se selectează
opţiunea Open.
3. Salvaţi rezultatul ca o tabelă SAS cu numele comenzi.
4. Selectaţi formatul de fişier. Se poate alege dintre cele două opţiuni:
 Fişiere delimitate. Pentru a specifica un delimitator care nu se regăseşte in listă, selectați Other.
 Fişiere cu coloane de lăţime fixă
5. În riglă trebuie să precizaţi locul în care începe fiecare coloană. Pentru acest lucru, faceţi click în riglă
sau în interiorul textului fişierului previzualizat. Punctele de marcare care apar pot fi mutate cu
ajutorul mouse-ului în altă locaţie sau pot fi îndepărtate prin mutarea lor în afara spaţiului în care
apare grila.

6. Dacă fișierul conţine numele câmpurilor pe care vreţi să le folosiţi ca nume de coloane, selectaţi File
contains field names on record number. Introduceţi şi numărul înregistrării care conţine numele
câmpurilor.
7. Se poate bifa opţiunea de a redenumi coloanele pentru a fi compatibile cu convenţiile de nume ale
SAS. Aceste convenţii conţin reguli ca: numele începe cu o literă sau cu caracterul ” _” underscore ;
conţine litere, cifre sau caracterul underscore, are o lungime de maxim 32 de caractere, nu poate fi
inclus între ghilimele duble, nu este case sensitive – nu face diferenţiere între litere mari şi mici.
8. Pentru a specifica numărul înregistrării care conţine prima linie de date. Introduceţi o valoare în
câmpul Data records start at record number.
9. Pentru a specifica ultima înregistrare pe care doriţi să o importaţi, selectaţi Limit the number of
records read to şi introduceţi numărul ultimei înregistrări în caseta alăturată.
10. Selectaţi Next pentru a defini atributele câmpurilor.
11. Modificaţi atributele câmpurilor în felul următor:
 Câmpul 1 nu îl introduceţi în tabela rezultat.
 Pentru câmpul 2 se schimbă atributul “Name” cu IDProd, “Label” cu Identificator produs şi
“Len.” cu 4.
 Pentru câmpul 3 se schimbă atributul “Name” cu Cantitate şi “Label” cu Cantitate comandata
 Pentru câmpul 4 se schimbă atributul “Name” cu PretVanzare şi “Label” cu Pretul de vânzare.
Pentru acest câmp se selectează tipul (Type) Currency şi formatul de ieşire (Output format)
DOLLARw.d. Se schimbă lăţimea la 8 şi numărul de poziţii zecimale la 2.
 Pentru câmpul 5 se schimbă atributul “Name” cu Venit şi “Label” cu Venit. Pentru acest câmp se
selectează tipul (Type) Currency şi formatul de ieşire (Output format) DOLLARw.d. Se schimbă
lăţimea la 10 şi numărul de poziţii zecimale la 2.

Problema 2: Creaţi un fişier text delimitat prin caracterul tab care să conţină pe prima linie numele
câmpurilor, respectiv: nume, prenume, varsta şi salariu. Următoarele 5 rânduri trebuie să conţină
înregistrări valide. Importaţi acest fişier în SAS ca o tabelă cu numele angajaţi. Formatul de ieşire pentru
câmpul salariu trebuie să permită vizualizarea acestuia ca o valoare în moneda Euro. Eventualele
coloane generate, care nu conţin informaţii utile, se vor şterge la editarea atributelor.

Paşi de urmat:
1. Creaţi fişierul text potrivit cerinţelor problemei şi salvaţi-l cu numele angajati (*.txt).
2. În proiectul activ, selectaţi din meniu opţiunea File  Import Data…, apoi selectaţi Local
Computer şi alegeţi locaţia unde aţi salvat fişierul text.
3. Pentru a începe importul fişierului text, marcaţi fişierul angajati.txt şi apoi apăsaţi Open.
4. După selectarea opţiunii Open, este necesară parcurgerea celor patru paşi din caseta de dialog
apărută pe ecran, pentru a realiza importului fişierului text.
5. La primul pas se selectează Encoding pentru alegerea setului de caractere utilizat la
reprezentarea datelor din fişierului importat.
6. De asemenea, la primul pasul se poate selecta salvarea rezultatului ca o tabelă SAS cu numele
situatie_angajati. Apăsaţi Next pentru a ajunge la pasul al doilea.
7. La pasul al doilea selectaţi formatul de fişier şi tipul delimitatorului dintre câmpuri.
8. Selectaţi File contains field names on record number dacă fișierul conţine numele câmpurilor
ce vor fi utilizate ca nume de coloane şi introduceţi numărul înregistrării care conţine numele
câmpurilor. În câmpul Data records start at record number se introduce numărul înregistrării care
conţine prima linie de date din fişierului text.
9. Se poate bifa opţiunea de a redenumi coloanele pentru a fi compatibile cu convenţiile de nume
ale SAS. Aceste convenţii conţin reguli ca: numele începe cu o literă sau cu caracterul ”_” underscore
; conţine litere, cifre sau caracterul underscore, are o lungime de maxim 32 de caractere, nu poate fi
inclus între ghilimele duble, nu este case sensitive – nu face diferenţiere între litere mari şi mici.
10. Apăsaţi Next pentru a trece la pasul al III-lea: definirea atributele câmpurilor.
11. Modificaţi atributele câmpului Salariu astfel încât să îndeplinească cerinţele problemei. Pentru
acest câmp se selectează tipul (Type) Currency şi formatul de ieşire (Output format) EUROw.d. Se
schimbă lăţimea la 10 şi numărul de poziţii zecimale la 2.
12. Apăsaţi Next, pentru a trece la ultimul pas.
13. Cel de-al IV-lea pas conţine opţiuni avansate:
 Pentru a include datele în codul SAS generat ca parte a unei declaraţii DATALINES, selectaţi
opţiunea Embed the data within the generated SAS code. Dacă selectaţi această opţiune, atunci
rezultatul va include un program SAS care se poate rula din nou sau distribui altor utilizatori.
 Opţiunea Remove characters that can cause transmission errors from text-based data files se
foloseşte, spre exemplu, atunci când dorim să importăm caractere speciale, caracteristice unei
anumite limbi, care este posibil să nu fie recunoscute de server.
14. Se selectează Finish, pentru finalizarea importului fişierului de date de tip text.

Problema 3: Creaţi un tabel HTML care să conţină informaţiile de mai jos. Acest tabel poate fi scris în MS
Word şi salvat ca pagină Web.

Tranzactie Data Valoare


176897 12/09/2009 $1,340.2
176898 12/09/2009 $2,240.9
176899 13/09/2009 $500.0
176900 13/09/2009 $1,267.5
176901 14/09/2009 $5,120.4
176902 14/09/2009 $1,123.8

Importaţi tabelul HTML în SAS, ca o tabela cu numele tranzactii. Țineți cont de următoarele observaţii:
a) câmpul Data trebuie să afişeze în tabela generată mai întâi luna, apoi ziua şi anul; b) câmpul Valoare
trebuie să afişeze în tabela generată valoarea fără semnul de dolar în faţă. Pentru a realiza aceste
modificări trebuie să alegeţi formate de afişare potrivite pentru cele două câmpuri.

Paşi de urmat:

3. Creaţi tabelul de mai sus într-un document WORD şi salvaţi-l cu numele tranzactii, ca pagina
Web. (*.htm, *.html)
4. În proiectul activ selectaţi din meniu opţiunea File  Import Data…, apoi selectaţi Local
Computer şi alegeţi locaţia unde aţi salvat fişierul text.

5. Pentru a începe importul fişierului text, marcaţi fişierul tranzactii.htm (/.html) şi apoi selectaţi
opţiunea Open.

6. După selectarea opţiunii Open, este necesară parcurgerea celor patru paşi din caseta de dialog
apărută pe ecran, pentru realizarea importului fişierului tranzactii.

7. La primul pasul se poate selecta salvarea rezultatului ca o tabelă SAS cu numele


situatie_tranzactii. Apăsaţi Next pentru a ajunge la pasul al II-lea.

8. Întrucât datele au fost introduse într-o formă tabelară, nu mai este necesară specificarea
delimitatorului câmpurilor.
Selectaţi File contains field names on record number dacă fișierul conţine numele câmpurilor ce
vor fi utilizate ca nume de coloane şi introduceţi numărul înregistrării care conţine numele
câmpurilor. Introduceţi şi numărul înregistrării care conţine prima linie de date din fişierului text, în
câmpul Data records start at record number.
9. Apăsaţi Next pentru a trece la pasul al III-lea, definirea atributele câmpurilor.
10. Modificaţi atributele câmpului Data, astfel încât să îndeplinească cerinţele problemei,
subpunctul a). Pentru acest câmp se selectează formatul de ieşire (Output format) MMDDYYDw.d.
Pentru îndeplinirea cerinţei de la subpunctul b), se modifică formatul de ieşire (Output format) al
câmpului Valoare. Se va modifica formatul de ieşire (Output format) al câmpului Valoare, din
Currency în Numeric, pentru a se elimina simbolul de dolar, cu lăţimea de 10 şi numărul de poziţii
zecimale de 2.
11. Apăsaţi Next, pentru a trece la ultimul pas.
12. Cel de-al IV-lea pas conţine opţiuni avansate:
 Pentru a include datele în codul SAS generat ca parte a unei declaraţii DATALINES, selectaţi
opţiunea Embed the data within the generated SAS code. Dacă selectaţi această opţiune, atunci
rezultatul va include un program SAS care se poate rula din nou sau distribui altor utilizatori.
 Opţiunea Remove characters that can cause transmission errors from text-based data files se
foloseşte, de exemplu, atunci când dorim să importăm caractere speciale, caracteristice unei
anumite limbi, care este posibil să nu fie recunoscute de server.
13. Se apasă Finish pentru finalizarea importului fişierului.

3. Transpunerea tabelelor de date

Problemă: Să se creeze în SAS Enterprise Guide o tabelă de date cu conţinutul de mai jos. Datele se
referă la măsurarea greutăţii unor persoane pe parcursul unui experiment. Coloana Cod reprezintă
identificatorul persoanei, Timp indică momentul la care s-a efectuat măsurarea greutăţii memorate în
coloane Greutate. Toate cele trei coloane au tipul numeric, fără zecimale.

Cod Timp Greutate


1 1 70
1 2 73
1 3 81
2 1 64
2 2 61
2 3 58
3 1 96
3 2 93
3 3 91

Să se transforme tabela de mai sus (care este o tabelă de tipul mai-multe-întegistrări-per-subiect) într-o
tabelă care să permită analiza facilă a datelor referitoare la evoluţia în greutate a fiecărei persoane
(tabelă de tipul o-singură-întegistrărare-per-subiect) şi care să aibă 4 câmpuri: Cod, Greutate1,
Greutate2 şi Greutate3. Să se determine variaţia de greutate a fiecărei persoane înregistrată între prima
şi ultima măsurătoare. Se va utiliza prelucrarea TasksDataTranspose…
Pentru rezolvarea problemei folosiţi Help-ul pachetului de programe.

Paşi de urmat:
1. În proiectul activ selectaţi din meniu opţiunea File  New  Data, iar în caseta de dialog
apărută, modificaţi numele fişierului ce urmează a se crea în Analiza_greutate după care selectaţi
directorul Work, unde acesta va fi salvat .
2. La cel de-al doilea pas, fiecare litera A, B, C etc. reprezintă numele unei coloane pentru datele
ce se vor introduce ulterior. Tabelul de mai sus este format din 3 coloane. Astfel, în caseta de dialog,
la pasul al doilea, se vor modifica proprietăţile aferente primelor 3 coloane, identificate inițial prin
literele A, B, şi C. Proprietăţile care se vor modifica pentru fiecare coloană în parte, în vederea
obţinerii structurii tabelare în SAS asemănătoare cu cea a tabelului de mai sus, sunt: numele
coloanei, eticheta acesteia, tipul date ce vor fi adăugate în coloană, formatul datelor şi dimensiunea
acestora.
3. Cu ajutorul săgeţilor ce despart denumirile coloanelor din stânga casetei de dialog de
proprietățile coloanelor, se poate modifica ordinea de apariţie in structura tabelară a coloanelor.
4. După ce au fost definite caracteristicile celor 3 coloane necesare realizării structurii tabelare de
mai sus, restul coloanelor, simbolizate prin litere (D, E, F etc.), se şterg cu ajutorul opţiunii DELETE,
simbolizată prin X. Aceasta opţiune se găseşte între zona ce conţine denumirile coloanelor din
stânga casetei de dialog si zona din dreapta a casetei de dialog, care conţine proprietățile
coloanelor.
5. Apăsaţi Finish, pentru a se crea structura tabelara în SAS.
6. În structura tabelară obţinută, introduceţi valorile numerice din tabelul de mai sus.
7. Pentru rezolvarea cerințelor problemei, selectaţi Task  Data  Transpose.
8. În caseta de dialog apărută optaţi pentru protejarea datelor (Yes).
În cea de-a doua casetă de dialog apărută, în secţiunea Data se utilizează opţiunea drag and drop,
pentru a muta fiecare variabilă din stânga în zona corespunzătoare din dreapta, astfel încât să fie
rezolvate cerinţele problemei. Se grupează după Cod (Group Analysis by), se alege variabila timp
pentru crearea de noi coloane (New column names), şi se alege variabila greutate pentru a fi
transpusă (Transpose Variable) în coloanele noi create.
9. În secţiunea Options modificaţi prefixul coloanelor noi ce se vor crea, din Columns în Greutate.
10. Utilizaţi Run pentru a se realiza transpunerea datelor.
11. Se poate opta pentru deprotejarea datelor (EditProtect Data ), pentru a fi permisă ştergerea
coloanelor inutile (coloanele cu numele variabilei transpuse şi cea cu eticheta acesteia).
12. Pentru a rezolva cerinţa problemei, referitoare la determinarea variaţiei de greutate a fiecărei
persoane înregistrată între prima şi ultima măsurătoare, trebuie să fie debifată opţiunea de
protejare a datelor.
13. Utilizaţi click dreapta in zona tabelară, acolo unde doriți sa adăugaţi o coloană nouă, în care se
va calcula diferența de greutate. În caseta de dialog apărută trebuie introduse caracteristicile noii
coloane: nume - vargreutate, etichetă - Variaţia de greutate, tipul - numeric. În secţiunea
Expression utilizaţi butonul aferent acestei opţiuni, extindeţi tabela în care se lucrează, din
directorul Tables, şi tastaţi formula matematică, pentru calculul diferenţei de greutate între prima şi
ultima măsurătoare. Pentru a scrie expresia se realizează dublu-click pe numele variabilelor ce
trebuie utilizate, iar între acestea se folosesc simbolurile matematice corespunzătoare.
14. Utilizaţi Ok pentru a obţine rezultatele diferenţei de greutate într-o coloană nouă.

Probleme de rezolvat:
1. Să se importe un fişier (text sau Excel sau HTML). Poate fi importat fişierul utilizat pentru
proiect;
2. Atunci când se realizează importul, să se includă datele în codul SAS;
3. Să se exporte codul într-un program care poate fi rulat de către alţi utilizatori;
4. Deschideţi programul şi rulaţi-l.

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