+ All Categories
Home > Documents > SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza...

SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza...

Date post: 10-Sep-2019
Category:
Upload: others
View: 15 times
Download: 0 times
Share this document with a friend
37
SAS conf. dr. Rodica Ioana LUNG [email protected] 11/5/2013
Transcript
Page 1: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

SAS conf. dr. Rodica Ioana LUNG

[email protected]

11/5/2013

Page 2: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Rapoarte

• Obiective

• cum aleg baza de date

• cum selectez anumite variabile sau observații

• Sortare de date

• Specificare de totaluri

• Adăugare de titluri și note de subsol

• Adăugare de etichete

• FORMATS

Page 3: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Rapoarte simple

libname curs2 ”C:\......”;

proc print data=curs2.admit;

run;

Page 4: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Total pe coloane (variabile)

proc print data=curs2.admit;

sum fee;

run;

Page 5: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Sortare și etichete

proc sort data=curs2.admit;

by age;

run;

proc print data=curs2.admit label;

var age height weight fee;

label fee=“Taxa”;

run;

Page 6: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Filtrare de observatii/variabile

proc print data=curs2.admit noobs;

var age height weight fee;

where age>30;

run;

Page 7: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

PROC PRINT

• forma generala: proc print <data=sasdataset>;

run;

• implicit:

• se afiseaza toate observatiile si variabilele;

• se afiseaza o coloana Obs/nr. observatiei in tabel;

• variabilele apar in ordinea in care sunt in tabel

Page 8: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Selectarea variabilelor

• selectarea variabilelor var variabila(e);

unde variabilele sunt separate prin spatii.

proc print data=curs2.admit;

var age height weight fee;

run;

• coloana Obs on/off: optiunea noobs in linia lui proc

print;

Page 9: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Identificarea observatiilor

• forma generala: ID variabila(e);

Unde variabilele indica una sau mai multe variabile care vor fi tiparite in loc de numarul observatiei la inceputul fiecarui rand din raport

• In output-ul clasic variabilele din ID se vor repeta la fiecare observatie care e afisata pe mai mult de o linie.

proc print data=curs2.admit;

id ID Name;

run;

• Daca o variabila apare si pe coloana VAR atunci va fi afisata de doua ori

proc print data=curs2.admit;

id ID Name;

var Name age fee;

run;

Page 10: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Selectarea observatiilor

• forma generala:

where expresie_where;

unde expresie_where contine conditia de selectare a observatiilor

proc print data=curs2.admit;

var age height weight fee;

where age>30;

run;

Page 11: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Expresii „where‟

• se pot metiona toate variabilele din tabel (nu doar cele din

lista var);

• pt. variabilele caracter

• se folosesc ghilimele obligatoriu;

• se tine cont de majuscule/minuscule;

• operatori:

• = sau eq;

• ^= sau ne;

• > sau gt;

• < sau lt;

• >= sau ge;

• <= sau le;

Page 12: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Continuare Where

• operatorul CONTAINS / ? where name contains “Jon”;

sau where name ? “Jon”;

• Compunerea expresiilor • AND sau &

• OR sau |

where age<=55 and pulse>75;

where sex=“F” or age<30;

• IN pentru „apartine‟ where age in (24,35,67);

where fee in (124.80, 178.20);

• Folosim paranteze pentru a controla ordinea calculului

Page 13: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Sortarea datelor

• proc print afiseaza observatiile in ordinea in care apar

in baza de date;

• proc sort:

• rearanjeaza datele din tabelul SAS;

• creaza un nou tabel SAS care contine datele rearanjate;

• implicit inlocuieste tabelul SAS original (daca nu se specifica altfel);

• ordoneaza dupa mai multe variabile;

• ordoneaza crescator/descrescator;

• nu genereaza raport;

• trateaza valorile lipsa ca fiind cele mai mici valori posibile.

Page 14: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Sortarea datelor

• Forma generala

proc sort data=sasdataset <out=sasdataset>;

by <descending> variabile;

run;

unde

• data= specifica tabelul care trebuie ordonat;

• out= specifica tabelul care va contine datele ordonate;

• variabilele by sunt variabilele dupa care se face sortarea;

• optiunea <descending> se aplica variabilei imediat

urmatoare

• daca nu se specifica out= se sorteaza permanent tabelul

mentionat la data=

Page 15: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu

• Sa se ordoneze permanent tabelul curs2.admit dupa greutate si varsta;

• rezultatul sa se scrie in tabelul wgtadmit;

• sa se afiseze cele doua tabele; proc sort data=curs2.admit out=work.wgtadmit;

by weight age;

run;

proc print data=curs2.admit;

var age height weight fee;

run;

proc print data=work.wgtadmit;

var age height weight fee;

run;

Page 16: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu (cont)

• sortati variabila weight descrescator

proc sort data=curs2.admit out=work.wgtadmit;

by descending weight age;

run;

proc print data=work.wgtadmit;

var age height weight fee;

run;

Page 17: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Totaluri pe coloane

• forma generala: sum variable(s);

unde varible(s) sunt variabilele pentru care se doreste

calcularea sumei separate prin spatii.

• variabilele din sum pot sa nu apara in var…

proc print data=curs2.admit;

var age fee;

where age>30;

sum fee;

run;

Page 18: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Subtotaluri

• combinam sum cu by in proc print.

• forma generala by in proc print: by <descending> var1 … <descending> varn <notsorted>;

unde

• variabilele din by specifica o variabila care se va folosi pentru a crea

grupuri by. Se pot specifica mai multe separate de spatii.

• <descending> - grupurile vor fi sortate descrescator dupa variabila

corespunzatoare.

• notsorted – observatiile nu trebuie sortate; daca nu sunt sortate vor

aparea grupate in ordinea in care apar/se repeta.

• daca nu e folosita optiunea notsorted trebuie asigurata ordonarea

datelor inainte de afisare.

Page 19: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu

• sa se calculeze subtotalurile variabilei fee in functie de Actlevel in curs2.admit

proc sort data=clinic.admit out=work.activity;

by actlevel;

run;

proc print data=work.activity;

var age height weight fee;

sum fee;

by actlevel;

run;

• rezultatul: tabele separate pt fiecare valoare a lui actlevel;

Page 20: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Gruparea cu instructiuni BY si ID

• pentru a arata variabila BY doar o data combinam ID cu

BY si SUM:

• cand ID specifica aceeasi variabila ca si BY:

• se ascunde coloana OBS

• variabila ID/BY apare pe coloana cea mai din stanga;

• fiecare valoare ID/BY apare doar la inceputul fiecarui grup BY si

pe linia care contine subtotalul

Page 21: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu

proc sort data=curs2.admit out=work.activity;

by actlevel;

run;

proc print data=work.activity;

var age height weight fee;

sum fee;

by actlevel;

id actlevel;

run;

Page 22: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Subtotaluri pe pagini diferite

• PAGEBY – forma generala pageby variabila-by;

unde variabila-by identifica o variabila intr-o instructiune BY din proc print.

• de fiecare data cand cand valoarea variabilei se schimba proc print incepe o pagina noua.

Page 23: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu

proc sort data=curs2.admit out=work.activity;

by actlevel;

run;

proc print data=work.activity;

var age height weight fee;

sum fee;

by actlevel;

id actlevel;

pageby actlevel;

run;

Page 24: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Personalizarea raportului

• adaugarea de titlu si nota de subsol

• inlocuirea numelor de variabile cu etichete

• formatarea valorilor de variabile

Page 25: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

TITLE si FOOTNOTE

• pana la 10 titluri /note de subsol inainte de pas proc.

• instructiuni globale – se aplica din momentul procesarii la

tot ce urmeaza;

• forma generala: title<n> “text”;

footnote<n> “text”;

unde n e un numar de la 1 la 10 care specifica la al

catelea tilu/nota de subsol se refera;

• lungimea maxima e data de optiunea linesize=; • titlu=titlu1/footnote=footnote1;

• titlul implicit este “The SAS System”;

Page 26: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu: titlu

title1 “titlu pe linia 1”;

title3 “titlu pe linia 3”;

proc print data=curs2.admit;

var age height fee;

where fee>100;

run;

• In varianta html nu se vede linie libera

• In listing DA

Page 27: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemplu: note de subsol

footnote1 “nota de subsol 1”;

footnote3 “nota de subsol 3”;

proc print data=curs2.admit;

var age height fee;

where fee>100;

run;

• La fel ca si la titlu, e diferenta intre varianta html si cea

„listing‟;

Page 28: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Modificare si anulare

• TITLE si FOOTNOTE sunt instructiuni globale;

• Raman valabile pe toata durata programului sau pana

sunt anulate;

• Modificare: prin inlocuirea textului: title3 “titlu 3 nou”;

• Anulare: comanda fara text: title3;

footnote3;

• se anuleaza si textul implicit de titlu;

• title; footnote; anuleaza toate titlurile/notele de subsol de

pana atunci;

Page 29: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Etichete - PROVIZORII

• proc print afiseaza numele variabilelor din tabelul

SAS.

• Daca vrem sa afiseze alt text: folosim LABEL

• instructiunea LABEL care atribuie eticheta unei variabile

• optiunea LABEL in proc print;

• forma generala: label var1=“eticheta 1” var2=“eticheta 2”….;

• etichetele: max 256 caractere/intre ghilimele

• valabile doar in pasul proc in care sunt definite;

Page 30: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Etichete – exemplu

proc print data=curs2.admit label;

label age=“Varsta” weight=“Greutatea”;

run;

sau

proc print data=curs2.admit label;

label age=“Varsta”;

label weight=“Greutatea”;

run;

Page 31: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

FORMATS - tot provizorii

• in SAS formatul prezentarii datelor e controlat cu FORMATS

• formatarile afecteaza doar modul de afisare, nu felul cum sunt pastrate datele in SAS

• forma generala: format variabila(e) nume_format;

unde

• variabila(ele) urmeaza sa fie afisate folosind nume_format;

• nume_format indica un format SAS predefinit sau definit de utilizator

• se pot folosi separat mai multe instructiuni format pt variabile diferite sau nu.

• are efect doar in cadrul pasului proc in care a fost definit.

Page 32: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemple

proc print data=clinic.admit;

var actlevel fee;

where actlevel='HIGH';

format fee dollar4.;

run;

Page 33: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Formats

Page 34: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

w – latimea campului

• w – latimea totala a campului cu zecimale, semne speciale ($,€, etc.) si semnul de zecimala respectiv virgula daca se vrea afisata;

• w – trebuie definit cu atentie – destul de mare;

• Exemplu: pentru a afisa numarul 5400 in forma: 5,400 se foloseste commaw.d cu comanda: format variabila comma5.0;

• se ia latimea 5 pentru ca se numara si „,‟;

d – numar de zecimale

format variabila comma8.2;

afiseaza numarul 1234 ca 1,234.00

Page 35: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Exemple

daca un format e prea mic pentru a afisa corect informatia se

emite o NOTA in SAS log

Page 36: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

Atribuirea permanenta de

formatari/etichete • intr-un pas DATA – se salveaza impreuna cu tabelul SAS

data curs2.admit1;

set curs2.admit;

label age=“varsta”;

format fee dollar6.2;

run;

proc print data=curs2.admit1 label;

run;

Page 37: SAS - econ.ubbcluj.rorodica.lung/sase/cursuri/sas2.pdf · Rapoarte •Obiective • cum aleg baza de date • cum selectez anumite variabile sau observații • Sortare de date •

In plus…

• Pentru afisarea etichetelor pe mai multe randuri…

proc print data=curs2.admit label split=“*”;

var age height fee;

label fee=“taxa de* internare”;

run;


Recommended