11
Seminar 2 SAS 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 EditProtect Data, pentru a schimba modul de protecţie a fişierului de date.

Seminar

  • Upload
    silica

  • View
    217

  • Download
    1

Embed Size (px)

DESCRIPTION

2 SAS

Citation preview

Page 1: Seminar

Seminar 2 SAS1. 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 EditProtect 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 DataData General

Page 2: Seminar

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|35Ionescu|Damian|42Diamandescu|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-5Câmpul 2: Numărul de identificare al produsului, poziţia 7-10Câmpul 3: Cantitatea comandată, poziţia 13-15Câmpul 4: Preţul de vânzare, poziţia 17-22Câ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.

Page 3: Seminar

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) DOLLAR w.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) DOLLAR w.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.

Page 4: Seminar

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) EURO w.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 Valoare176897 12/09/2009 $1,340.2176898 12/09/2009 $2,240.9176899 13/09/2009 $500.0176900 13/09/2009 $1,267.5176901 14/09/2009 $5,120.4176902 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.

Page 5: Seminar

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) MMDDYYD w.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.Exerciţii: 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.

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ă

Page 6: Seminar

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 Greutate1 1 701 2 731 3 812 1 642 2 612 3 583 1 963 2 933 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 TasksDataTranspose…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).

Page 7: Seminar

Î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 (EditProtect 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ă.