Procesări Iterative ale Datelor

Laborator
7/10 (1 vot)
Domeniu: Statistică
Conține 2 fișiere: doc, txt
Pagini : 16 în total
Cuvinte : 3864
Mărime: 535.70KB (arhivat)
Publicat de: Abel Ene
Puncte necesare: 0

Extras din laborator

x

Lecţia 4. Procesări iterative ale datelor

4.1 Introducere

4.2 Grupuri DO (DO Groups)

4.3 Instrucţiunea Sum

4.4 Cicluri DO (DO Loops)

4.5 Alte forme ale ciclurilor DO

4.6 Instrucţiunile DO UNTIL şi DO WHILE

4.7 Instrucţiunile LEAVE şi CONTINUE

4.8 Aplicaţii propuse

4.1 Introducere

SAS oferă mai multe modalităţi de realizare a proceselor iterative (aceeaşi secvenţă de cod se execută de mai multe ori). În acest capitol sunt prezentate: grupuri DO (DO groups), cicluri DO (DO loops), instrucţiunile DO WHILE şi DO UNTIL.

4.2 Grupuri DO (DO Groups)

Sintaxa unui grup DO este următoarea:

IF condiţie THEN DO;

secventa instructiuni;

END;

Instrucţiunile dintre DO şi END formează un grup DO. Când condiţia este îndeplinită, toate instrucţiunile din grupul DO se execută. Semnificaţia este următoarea: ”dacă este îndeplinită condiţia, execută secvenţă până când ajungi la sfârşit”.

Deşi la o primă vedere instrucţiunea pare una de decizie, similară instrucţiunii IF din alte limbaje de programare (C, Pascal etc.), ea este considerată în SAS mai apropiată de o iteraţie (se repetă aceeaşi secvenţă pentru mai multe date care îndeplinesc o condiţie).

Pentru a arăta cum funcţionează un grup DO, să considerăm tabelul de date conţinând informaţii referitoare la nişte studenţi: vârstă, gen, rezultatul la un examen parţial (variabila partial), rezultatul la un test (variabila test) şi rezultatul la examenul final (examen_final).

Dorim să citim valori din acest tabel de date şi să creăm două noi variabile: cat_varsta (categoria de varsta) şi medie. Dacă varsta este mai mică sau egală decât 39, atunci categoria de varsta să fie “tanar” şi media să se calculeze ca medie ponderată (partial 40% şi examen_final 60%). Dacă varsta este mai mare decât 39, atunci categoria de varsta să fie “in varsta” şi media să se calculeze ca medie aritmetică între partial şi examen_final.

Datele se găsesc în fişierul date.txt. Conţinutul fişierului este următorul:

21 M 80 B- 82

. F 90 A 93

35 M 87 B+ 85

48 F . . 76

59 F 95 A+ 97

15 M 88 . 93

67 F 97 A 91

. M 62 F 67

35 F 77 C- 77

49 M 59 C 81

Să vedem mai întâi programul care nu conţine un grup DO. Programul conţine comanda INFILE, de import al datelor din fişierul text date.txt.

data studenti;

length gen $ 1

test $ 2

cat_varsta $ 13;

infile 'C:Documents and SettingsAdministratorDesktoplectia4date.txt';

input varsta gen partial test examen_final;

if missing(varsta) then delete;

if varsta le 39 then cat_varsta = 'tanar’;

if varsta le 39 then medie = .4*partial + .6*examen_final;

if varsta gt 39 then cat_varsta = 'in varsta';

if varsta gt 39 then medie = (partial + examen_final)/2;

run;

proc print data=studenti noobs;

run;

Se observă că primele două instrucţiuni IF, precum şi ultimele două au aceeaşi condiţie. Ar fi de preferat ca scriind o singură verificare a condiţiei să se poată executa mai multe operaţii. Acest lucru se realizează cu ajutorul unui grup DO, astfel:

data studenti;

length gen $ 1

test $ 2

cat_varsta $ 13;

infile 'C:Documents and SettingsAdministratorDesktoplectia4date.txt';

input varsta gen partial test examen_final;

if missing(varsta) then delete;

if varsta le 39 then do;

cat_varsta = 'tanar';

medie = .4*partial + .6*examen_final;

end;

else if varsta gt 39 then do;

cat_varsta = 'in varsta';

medie = (partial + examen_final)/2;

end;

run;

proc print data=studenti noobs;

run;

Rezultatul execuţiei prgramului este următorul:

Se observă că ambele programe funcţionează corect în ceea ce priveşte valorile lipsă ale variabilei varsta. Funcţia missing() returnează valoarea true dacă parametrul său este o valoare lipsă. Funcţia delete previne adăugarea observaţiei care are o valoare lipsă.

4.3 Instrucţiunea Sum

Instrucţiunea SUM este una simplă şi în acelaşi timp extrem de utilă. Există două utilizări ale sale: una pentru a calcula totaluri cumulative şi alta pentru crearea unui contor – variabilă care este incrementată cu o valoare fixă la fiecare iteraţie.

Sintaxa generală este următoarea:

variabila+increment

Presupunem că avem un set de date cu observaţii privind încasările pe fiecare zi a săptămânii şi dorim un program care să calculeze un total cumulativ.

Iată o primă încercare, fără utilizarea unei instrucţiuni Sum.

ATENŢIE. PROGRAMUL NU ESTE CORECT!

data bani;

input zi : $3.

incasari : dollar6.;

Total = Total + incasari; /* aici programul nu functioneaza corect */

format incasari Total dollar8.;

datalines;

Lun $1,000

Mar $1,500

Mie .

Joi $2,000

Vin $3,000

Preview document

Procesări Iterative ale Datelor - Pagina 1
Procesări Iterative ale Datelor - Pagina 2
Procesări Iterative ale Datelor - Pagina 3
Procesări Iterative ale Datelor - Pagina 4
Procesări Iterative ale Datelor - Pagina 5
Procesări Iterative ale Datelor - Pagina 6
Procesări Iterative ale Datelor - Pagina 7
Procesări Iterative ale Datelor - Pagina 8
Procesări Iterative ale Datelor - Pagina 9
Procesări Iterative ale Datelor - Pagina 10
Procesări Iterative ale Datelor - Pagina 11
Procesări Iterative ale Datelor - Pagina 12
Procesări Iterative ale Datelor - Pagina 13
Procesări Iterative ale Datelor - Pagina 14
Procesări Iterative ale Datelor - Pagina 15
Procesări Iterative ale Datelor - Pagina 16

Conținut arhivă zip

  • lectia4.doc
  • rezolvari_lectia4.txt

Alții au mai descărcat și

Cercetare Asupra Vopselei Lavabile Superweiss

Düfa ROMÂNIA SRL este una dintre cele mai dinamice companii ce opereaza pe piata de lacuri si vopsele din România. Compania a fost fondata în anul...

Lucrare aplicativă 2 - analiză economico financiară

A.Analiza factoriala a CA 1.Model CA= ∑ q * p Grupe de produse CA0 Ca1 Ip CAr A 7500 8000 1.25 6400 B 9800 10600 1.05 10095.2 C 6700 7400 1.2...

Modelul Liniar - 1

O societate foloseste pânze de bomfaier de la doi furnizori. Dupa ultima aprovizionare constata ca: - de la furnizorul A a primit 300 de bucati...

Gruparea Datelor

Exemplu pentru gruparea datelor: Despre un număr de 40 de primării din Transilvania, Moldova şi Oltenia s-au înregistrat următoarele date pentru...

Proiect Econometrie Regresie

Produsul Intern Brut este un indicator macroeconomic care reflectă suma valorii de piaţă a tuturor mărfurilor şi serviciilor destinate consumului...

Etalonarea

Pentru testare am utilizat un esantion de 30 de subiecti,femei si barbati,cu varsta cuprinsa intre 20 si 30 de ani. Esantionarea a fost aleatoare...

Te-ar putea interesa și

Instruirea Asistată pentru un Limbaj de Programare

INTRODUCERE Instruirea asistată de calculator este un domeniu al informaticii aflat în plină dezvoltare. Procesul de instruire presupune existenţa...

Bazele radiocomunicațiilor

1. Introducere În 1876 experimentul lui Alexander Graham Bell care demonstra că vocea poate fi transmisă la distanţă pe cabluri de cupru a marcat...

Programare calendaristică

Mai puţin formal, un proces de planificare a sarcinilor pe maşini (sau proces de ordonanţare pe maşini) constă în determinarea ordinii optime în...

Ai nevoie de altceva?