Sunteți pe pagina 1din 14

Laborator 6 Proceduri SAS sistematizare (Print Sort Means).

Cuprins
1. PROCEDURI SAS - SISTEMATIZARE................................................1
1.1. Proceduri SAS........................................................................1
1.1.1. Procedura PRINT..............................................................1
1.1.2. Procedura SORT...............................................................8
1.1.3. Procedura MEANS............................................................9

1. PROCEDURI SAS - SISTEMATIZARE


1.1. PROCEDURI SAS
1.1.1. Procedura PRINT

Afieaz coninutul unui tabel de date.


Sintaxa procedurii:
PROCPRINT<optiuni>;
<clauze>
RUN;

Exemplul 1. Crearea unui listing, cu selectarea variabilelor ce vor fi afiate


optionsnodatepageno=1linesize=70pagesize=60;
datasituatie;
inputRegiune$Stat$Lunamonyy5.
CheltuieliVenituri;
formatLunamonyy5.;
datalines;
SudGAJAN9520008000
SudGAFEB9512006000
SudFLFEB95850011000
NordNYFEB9530004000

NordNYMAR9560005000
SudFLMAR95980013500
NordMAMAR9515001000
;
procprintdata=situatiedouble;
varlunastatcheltuieli;
title'Cheltuielilunare';
run;

Acest exemplu:
Seteaz opiuni generale SAS (fr dat, numr pagin, lungimea unei linii,
dimensiunea paginii);
Creeaz tabelul de date situatie, coninnd cinci variabile: Regiune, Stat, Luna,
Cheltuieli, Venituri i populeaz acest tabel cu apte observaii;

Dubleaz spaiul dintre liniile afirii (opiunea double) ;


Selecteaz trei variabile pentru a fi afiate (clauza var);
Adaug n afiare titlul 'Cheltuieli lunare';
Folosete etichetele variabilelor pentru antetul afirii.
Figura 1.1. Baza de date creat

Exemplul 2. Crearea unui raport HTML


odshtmlfile='pagina.html';
procprintdata=situatiedouble;
varlunastatcheltuieli;
title'Cheltuielilunare';
run;
odshtmlclose;

Figura 1.2. Raport HTML

Observaii:
Exemplul produce acelai rezultat ca exemplul precedent, dar creeaz n plus pagina
web pagina.html. Acesta poate fi vizualizat, salvat (File -> Save as).
ods Output Delivery System.
Exemplul 3. Crearea unui raport HTML cu opiunea STYLE
odshtmlfile='pagina.html';
procprintdata=situatiedouble
style(HEADER)={font_style=italicforeground=white}
style(OBS)={background=red};
varlunastatcheltuieli;
title'Cheltuielilunare';
run;
odshtmlclose;

Figura 1.3. Raport HTML

Exemplul 4. Modificarea antetului afirii


optionsnodatepageno=1linesize=70pagesize=60;
procprintdata=situatiesplit='*'nobs='Observation*Number*==========';
varlunastatcheltuieli;
labelluna='LUNA**====='
stat='STAT**====='
cheltuieli='CHELTUIELI**========';
formatcheltuielicomma10.;
title'Cheltuielilunare';
run;

Observaii.
opiunea SPLIT identific asterisk-ul drept caracterul care ncepe o nou linie n
antet;
opiunea n afieaz numrul observaiilor la sfritul listingului;
opiunea OBS specific antetul pentru coloana care desemneaz numrul observaiei.
Figura 1.4. Modificarea antetului afirii

Exemplul 5. Crearea unui raport pdf


optionsnodatepageno=1linesize=70pagesize=60;
odspdffile='fisier.pdf';
procprintdata=situatiesplit='*'nobs='Observation*Number*==========';
varlunastatcheltuieli;
labelluna='LUNA**====='
stat='STAT**====='
cheltuieli='CHELTUIELI**========';
formatcheltuielicomma10.;
title'Cheltuielilunare';
run;
odspdfclose;

Figura 1.5. Raport PDF

Exemplul 6. Afiarea pe grupuri de observaii

optionspagesize=60pageno=1nodatelinesize=70;
procsortdata=situatie;
byregiunestatluna;
run;
procprintdata=situatien='Nr.observatii:'noobslabel;
varlunacheltuielivenituri;
byregiunestat;
pagebyregiune;
formatcheltuielivenituricomma10.;
run;

Figura 1.6. Modificarea antetului afirii

Figura 1.7. Modificarea antetului afirii

Observaie:
folosirea clauzei BY implic anterior sortarea cresctoare a observaiilor n funcie
de variabila definit la clauza BY, lucru realizat cu procedura SORT;
Exemplul 7. Afiare cu nsumarea variabilelor numerice, grupate cu clauza BY

optionsnodatepageno=1linesize=70pagesize=60nobyline;
procsortdata=situatie;
byregiune;
run;

procprintdata=situatienoobs
n='Numarulobservatiilorperegiune:'
'Numartotal:';
sumcheltuielivenituri;
byregiune;
formatcheltuielivenituricomma10.;
title'Veniturisicheltuielitotalepentruregiunea#byval(regiune)';
run;
optionsbyline;

Figura 1.8. Modificarea antetului afirii

Figura 1.9. Modificarea antetului afirii

Observaii:
Specificaia byval plaseaz n titlu valoarea curent a variabilei definit n clauza
BY;
Opiunea BYLINE are ca efect afiarea fiecrui grup BY pe cte o pagin.

1.1.2. Procedura SORT

Sorteaz observaiile unui tabel de date


Sintaxa procedurii:
PROC SORT <opiuni>;
BY <DESCENDING> var_1 <...<DESCENDING> var_n>;
RUN;

Exemple:
Exemplul 1. Sortare descresctoare n funcie de cheltuieli
procsortdata=situatie;
bydescendingcheltuieli;
run;
procprintdata=situatie;
run;

Exemplul 2. Sortare (descresctoare n funcie de cheltuieli i cresctoare n funcie de


venituri) n alt tabel de date.
procsortdata=situatieout=situatie_sortata;
bydescendingcheltuielivenituri;
run;
procprintdata=situatie_sortata;
run;

Observaie:
sortarea implicit este cea cresctoare. Ea nu trebuie specificat cu nicio opiune;
sortare descresctoare i dup cheltuieli i dup venituri ar implica folosirea clauzei
BY astfel: by descending cheltuieli descending venituri;

1.1.3. Procedura MEANS

Calculeaz media variabilelor dintr-un tabel de date


Sintaxa procedurii:
PROC MEANS <optiuni>;
<clauze>
RUN;

Exemplul 1. Statistici simple descriptive.


optionsnodatepageno=1linesize=80pagesize=60;
dataconcurs_de_prajituri;
inputnume$112varsta1314aspect1617
gust1920aroma$2332etaje34;
datalines;
Orlando279380Vanilie1
Ramey328472Rom2
Goldston466875Vanilie1
Roe387973Vanilie2
Larsen237784Ciocolata.
Davis518691Rom3
Strickland198279Ciocolata1
Nguyen577784Vanilie.
Hildenbrand338183Ciocolata1
Byron627287Vanilie2
Sanders265679Ciocolata1
Jaeger4366741
Davis286975Ciocolata2
Conrad698594Vanilie1
Walters556772Ciocolata2
Rossburger287881Rom2
Matthew428192Ciocolata2
Becker366283Vanilie2
Anderson278785Ciocolata1
Merritt627384Ciocolata1
;
procmeansdata=concurs_de_prajiturinmeanmaxminrangestdfw=8;
varaspectgust;
title'Statisticipentrupunctajeleprivindaspectulsigustul;
run;

Figura 1.10. Modificarea antetului afirii

Aceste exemplu creeaz tabelul de date concurs_de_prajituri, coninnd 6 variabile


referitoare la numele participantului, vrsta, punctajul obinut pentru aspectul prjiturii, punctajul
pentru gustul prjiturii, aroma prjiturii i numrul de etaje.
Observaii:
tabelul este populat cu 20 de observaii;
procedura MEANS este folosit cu urmtoarele opiuni i clauze:
Opiuni:
DATA=tabel_de_date_SAS;
N numrul de observaii valide;
MEAN media variabilelor;
MAX valoarea maxim;
MIN valoarea minim;
RANGE diferena MAX-MIN;
STD deviaia standard;
FW=nr (aici 8) - field width limea cmpului (coloanei) de afiare, care determin
i numrul de zecimale afiate.
Clauze:
VAR specific variabilele ce vor fi analizate;
TITLE adaug un titlu n afiare.
Exemplul 2. Statistici descriptive cu clasificarea datelor
datacurs;

inputnume$18gen$11an$1314
clasa$16examen1819punctaj_final2122;
datalines;
AbbottF97A9087
BranfordM98A9297
CrandellM98B8171
DennisonM97A8572
EdgarF98B8980
FaustM97B7873
GreeleyF97A8291
HartF98B8480
IsleyM97A8886
JasperM97B9193
;
procmeansdata=cursmaxdec=3;
varexamen;
classgenan;
types()gen*an;
title'punctajullaexamen,grupatpegensianulabsolvirii';
run;

Aceste exemplu creeaz tabelul de date curs, coninnd 6 variabile referitoare la un curs
perfectionare: numele cursantului, genul, anul absolvirii, clasa, punctajul obinut la examen i
punctajul final.
Observaii:
tabelul este populat cu 10 de observaii;
procedura MEANS este folosit cu urmtoarele opiuni i clauze:
Opiuni:
DATA=tabel_de_date_SAS;
Pentru c nu se specific nicio statistic, vor fi afiate toate cele implicite (N,
MEANS, STD, MIN, MAX)
MAXDEC - specific numrul maxim de zecimale afiate.
Clauze:
VAR specific variabilele ce vor fi analizate;
CLASS separ analiza n subgrupuri; fiecare combinaie unic de valori pentru gen
i anul absolvirii reprezint un subgrup;
TYPES (() gen*an ) specific faptul c analiza va fi fcut att asupra tuturor
observaiilor din tabel, ct i asupra celor 4 subgrupuri rezultate n urma combinaiei

gen*an (ntruct variabilele gen i an au cte dou valori distincte, rezult n total
patru subgrupuri);
TITLE adaug un titlu n afiare.
Figura 1.11. Modificarea antetului afirii

Exemplul 3. Folosirea clauzei BY


procsortdata=cursout=tabel_ordonat;
byclasa;
run;
procmeansdata=tabel_ordonatminmaxmedian;
byclasa;
varexamen;
classgenan;
title1'punctajullaexamen,grupatpegensianulabsolvirii';
title2'incadrulfiecareiclase;
run;

Figura 1.12. Modificarea antetului afirii

Observaie:
Clauza BY produce o analiz separat pe fiecare valoare a variabilei specificate (n
acest caz variabila clasa).
Exemplul 4. Crearea unui interval de ncredere pentru valoarea mediei
datavoluntariat;
inputliceu$17an912nume$1420suma2226ore2829;
datalines;
Monroe1992Allison31.6519
Monroe1992Barry23.7616
Monroe1992Candace21.115
Kennedy1994Sid27.4525
Kennedy1994Will28.8821
Kennedy1994Morty34.4425
;
procmeansdata=voluntariatfw=8maxdec=2alpha=0.1clmmeanstd;
classan;
varsumaore;
run;

Figura 1.13. Modificarea antetului afirii

Observaie:
Opiunea alpha=0.1 specific o limit de ncredere de 90%, iar opiunea CLM
produce att limita inferioar, ct i pe cea superioar.

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