O U T O F A H U N D R E D P E O P L E : T H O S E W H O A L W AY S K N O W B E T T E R ;

Size: px
Start display at page:

Download "O U T O F A H U N D R E D P E O P L E : T H O S E W H O A L W AY S K N O W B E T T E R ;"

Transcription

1 O U T O F A H U N D R E D P E O P L E : T H O S E W H O A L W AY S K N O W B E T T E R ; D O U B T I N G E V E R Y S T E P - A L L T H E R E S T ; G L A D T O L E N D A H A N D I F I T D O - E S N T TA K E T O O L O N G - A S H I G H A S 4 9 ; A L W AY S G O O D, B E C A U S E T H E Y C A N T B E O T H E R W I S E - 4 M AY B E 5 ; A B L E T O A D M I R E W I T H O U T E N V Y- 1 8 ; L I V I N G I N C O N S TA N T F E A R O F S O M E T H I N G O R S O M E O N E ; C A PA B L E O F H A P P I N E S S S O M E T H I N G T O P S ; H A R M L E S S S I N G LY, S A VA G E I N C R O W D S - H A L F AT L E A S T ; W I S E A F T E R T H E FA C T- J U S T A C O U P L E M O R E T H A N W I S E B E F O R E I T ; TA K I N G O N LY T H I N G S F R O M L I F E ( I W I S H I W E R E W R O N G ) ; R I G H T E O U S - 3 5, W H I C H I S A L O T ; R I G H T E O U S A N D U N D E R S TA N D I N G - 3 ; W O R T H Y O F C O M PA S S I O N ; M O R TA L O U T O F ; T H U S FA R T H I S F I G U R E S T I L L R E M A I N S U N C H A N G E D. W I S Ł A W A S Z Y M B O R S K A

2

3 A N A L I Z Ă D E D AT E Î N S A S - N O T I Ţ E D E C U R S

4 Copyright 2014 First printing, October 2014

5 Cuprins Concepte de bază SAS 13 Programele SAS 13 Biblioteci SAS 15 Tabele SAS 16 Referirea fisierelor 17 Referirea fisierelor 17 procedura CONTENTS 18 procedura DATASETS 19 Editarea si depanarea programelor SAS 21 Interpretarea mesajelor de eroare 21 Tipuri de erori 21 Crearea de rapoarte sub forma de liste 23 Introducere 23 Sortare si etichete 24 Selectarea de observatii si variabile 24 proc PRINT 24 proc SORT 26 Generarea de totaluri pe coloane 27 Adaugarea de titluri si note de subsol 29 TITLE si FOOTNOTE 29

6 6 Atribuirea de etichete 30 Formatarea datelor 31 Atribuirea de formate temporare 31 Folosirea etichetelor si formatelor permanente 32 Crearea de tabele SAS din fisiere text 33 Crearea si modificarea de variabile 35 Selectarea observatiilor 36 Crearea datelor direct 37 Crearea unui fisier text cu date 38 Procesarea pasului DATA 39 Cum proceseaza SAS pasul data 39 Proc FORMAT 41 Definirea formatului 42 Specificarea de intervale 43 Definirea formatelor multiple 43 Folosirea formatelor 44 Statistici descriptive simple 45 proc Means 45 Crearea unui tabel cu rezultatele proc means 47 proc SUMMARY 48 proc FREQ 48 Crearea tabelelor bi-dimensionale 49 Crearea si gestionarea variabilelor 51 Crearea si modificarea variabilelor 51 Atribuirea lungimii 54

7 7 Selectarea datelor 55 Atribuirea conditionala folosind SELECT 57 Gruparea instructiunilor cu DO 58 Citirea tabelelor SAS 61 Citirea dintr-un singur tabel 61 Manipularea datelor 61 Procesarea cu by 63 Citirea observatiilor prin acces direct 64 Gasirea sfarsitului de tabel 66 Optiunea end 66 Combinarea de tabele SAS 69 Citire one-to-one 69 Concatenarea 70 Intercalarea 71 Match-merging 71 Procesarea match-merge 74 Faza de executie 74 Tratarea observatiilor fara pereche si a valorilor missing 75 Re-denumirea variabilelor 75 Excluderea observatiilor fara pereche 76 Selectarea variabilelor 76 Transformarea datelor folosind functii SAS 77 Convertirea datelor cu ajutorul functiilor 78 Manipularea valorilor de tip data 80 Functii pentru tipul caracter 84 Functii pentru valori numerice 89

8 8 Generarea de date cu cicluri do 91 Construirea buclelor do 91 Executarea conditionata a buclelor do: until and while 94 Procesarea datelor cu arrays 97 Crearea tablourilor unidimensionale 97 Forma generala a array 98 Crearea de variabile in instructiunea array 100 Tablouri multidimensionale 102 Transpunerea partiala a unui tabel SAS 103 Citirea valorilor de tip data/ora 105 Crearea unei observatii din mai multe inregistrari 107 Proc sql 109 Exercitii 121

9 9

10

11 Introducere Aceasta este prima versiune a manualului introductive de SAS pentru studenţii Facultăţii de Ştiinţe Economice şi Gestiunea Afacerilor a Universităţii Babeş-Bolyai din Cluj Napoca Tabelele folosite in exemplele din acest manual se gasesc la adresa rodica.lung/sas. Manualul de faţă urmează conţinutul necesar certificării de programator SAS de bază 1 1 SAS Certification Prep Guide: Base Programming for SAS 9

12

13 Concepte de bază SAS Obiective structura si componentele programelor SAS procesarea programelor SAS biblioteci SAS si tipuri de fisiere biblioteci temporare si permanente strucura si componentele programelor SAS Programele SAS - se folosesc pentru a accesa, manevra, analiza sau prezenta datele. -Exemplu 2 : data work.admit2; set work.admit; 2 Acest program creeaza un dataset SAS numit admit2 pornind de la admit si afiseaza continutul tabelului admit2. proc print data=work.admit2; Programele SAS sunt compuse din doua tipuri de componente: pasi DATA si pasi PROC care se pot combina in orice ordine. Pasii DATA se folosesc pentru a crea sau modifica tabele SAS, dar si pentru a produce rapoarte personalizate; se pot folosi pentru: aseza datele intr-un tabel SAS; calcula valori; verifica si valida datele; produce noi tabele SAS prin filtrare, unire sau actualizare de tabele exsitente.

14 14 Pasii PROC sunt proceduri (pre-scrise) folosite pentru a analiza, procesa si prezenta datele in SAS; Sintaxa generala a comenzilor SAS Instructiunile incep de obicei cu un cuvant cheie si se termina intotdeauna cu ; Nu se face diferente intre majuscule/minuscule/combinatii; 3 Instructiunile pot sa inceapa pe orice coloana; Putem folosi mai multe instructiuni pe o linie; O instructiune se poate intinde pe mai multe linii (pastrand cuvintele intregi); Listele se separa cu spatii sau cu caractere speciale; Procesarea programelor SAS - primul lucru SAS citeste instructiunile si verifica daca nu sunt erori; - instructiunile DATA si PROC indica inceputul unui nou pas; cand SAS intalneste un nou pas (sau un cuvant cheie run sau quit care indica sfarsitul unui pas), se opreste din citit si executa pasul anterior 4. Mesage LOG La fiecare pas SAS genereaza un LOG cu activitatile efectuate si rezultatele procesarii, impreuna cu eventualele erori sau atentionari. Mai jos este un exemplu de LOG obtinut in urma rularii programului de mai sus: 3 in textul cuprins intre ghilimele se face diferenta intre majuscule si minuscule Recomandari de buna practica: folositi doar o instructiune pe fiecare linie; lasati un rand liber intre doi pasi; indentati randurile fata de data, proc sau comentati documentele/programele /*text*/ sau * 4 e recomandat ca fiecare pas de tip DATA sau PROC sa se termine cu instructiunea NOTE: There were 21 observations read from the data set WORK.ADMIT. NOTE: The data set WORK.ADMIT2 has 21 observations and 9 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds user cpu time 0.00 seconds system cpu time 0.01 seconds memory k OS Memory k Timestamp 04/07/ :15:50 PM Page Faults 0 Page Reclaims 120 Page Swaps 0 Voluntary Context Switches 10 Involuntary Context Switches 0 Block Input Operations 0 Block Output Operations 264

15 15 27 proc print data=work.admit2; 28 NOTE: There were 21 observations read from the data set WORK.ADMIT2. NOTE: PROCEDURE PRINT used (Total process time): real time 0.02 seconds user cpu time 0.00 seconds system cpu time 0.02 seconds memory k OS Memory k Rezultatele procesarii se vor regasi in fereastra de Output in format vizual html 5. Uneori rezultatele programului se vor vedea doar in LOG. Exemplu este urmatorul program 6 : 5 incercati sa rulati programul de mai sus si sa vizualizati rezultatul 6 programul copiaza tabelul admit din biblioteca clinic in bilbioteca work proc copy in=clinic out=work; select admit; Biblioteci SAS Bibliotecile SAS sunt colectii de fisiere SAS. In Windows si Linux sunt asociate cu directoarele din structura sistemului de operare. Fisierele SAS pot fi pastrate permanent sau folosite doar temporar pe durata unei sesiuni de lucru daca nu se foloseste un nume de biblioteca/sau se foloseste bilbioteca work atunci fisierele sunt valabile doar pe durata sesiunii de lucru 7 ; pentru a se pastra permanent se foloseste un nume de biblioteca, altul decat work 8. 7 fisierul se va referi doar cu numele sau cu work.numefisier 8 fisierul se va referi cu numele libref.numefisier Reguli pentru nume in SAS: lungimea intre 1-32 caractere; trebuie sa inceapa cu o litera sau _; poate sa continue cu orice combinatie de litere, numere sau _;

16 16 Tabele SAS Tabelele SAS sunt formate din doua parti: descriptor si date. Uneori mai contin si indecsi folositi pentru a accesa datele mai eficient. Descriptorul contine informatii despre tabelul SAS, incluzand: numele; data si ora cand a fost creat; numarul de observatii; numarul de variabile; Partea de DATE contine datele organizate intr-un tabel rectangular. Liniile tabelului se cheama observatii - colectii de date care se refera la acelasi obiect. Atributele variabilelor - informatii despre tipul variabilelor din tabel, sunt continute in partea de descriptor. Nume - fiecare variabila are un nume 9. 9 Numele variabilei respecta regulile SAS Tip - poate sa fie de doua feluri: caracter sau numeric variabilele de tip caracter pot contine Valorile lipsa pentru variabilele de tip caracter sunt reprezentate ca orice valori; cele de tip numeric pot contine doar valori numerice, 0-9, si spatiu iar pentru cele numerice ca si. +,-,.,sau E Lungime - numarul de bytes necesari pentru a stoca, e legata de tipul de variabila: cele de tip caracter pot avea pana la bytes; cele numerice au lungimea 8 si sunt salvate ca si floating point (doar daca nu se specifica altfel). Format - sunt atribute ale variabilelor care controleaza modul in care se afiseaza datele 11. SAS ofera o serie de formate predefinite, dar se pot crea si formate personalizate. 11 De ex., formatul DOLLAR8.2 afiseaza valoare 1234 ca si $ Informat - atribute care controleaza modul in care SAS citeste anumite date si le trece in format SAS de ex. pentru a citi valoarea $ este nevoie de un informat Label - eticheta - un text de maxim 256 caractere care descrie mai pe larg (sau mai pe scurt daca e cazul) variabila.

17 Referirea fisierelor Obiective definirea de biblioteci SAS; referirea fisierelor SAS temporare; setarea de optiuni pentru citirea datelor si afisarea output-ului. Referirea fisierelor Fisierele SAS sunt pastrate in biblioteci SAS. Implicit SAS pastreaza urmatoarele biblioteci pentru utilizatori: sashelp - permanenta, contine exemple, este read-only; sasuser - permanenta, de folosit pentru fisierele de lucru; work - temporara; fisierele de aici nu se salveaza de la o sesiune de lucru la alta. Atribuirea numelui de biblioteca se face prin atribuirea unui nume de biblioteca libref unui director de pe disk folosind comanda LIBNAME. Forma generala a LIBNAME este unde: LIBNAME libref locatia bibliotecii ; libref este nu nume de lungime intre 1 si 8, incepe cu o litera sau _, si contine doar litere, cifre sau _; locatia bibliotecii se refera la locatia fizica a fisierelor SAS si depinde de sistemul de operare 13. Exemplu 14 : libname clinic d:\users\qtr\reports ; 13 este recomandata intotdeauna verificarea LOG dupa o comanda LIBNAME 14 exemplele din acest curs se potrivesc sistemului de operare Windows

18 18 asociaza numele bibliotecii clinic directorului d:\users\qtr\reports. Durata de viata a libref este pana cand sunt modificate, anulate sau se termina sesiunea SAS. Fisierele din biblioteca libref se apeleaza folosind sistemul de nume cu doua nivele: libref.numefisier. LIBNAME se poate folosi si pentru alte tipuri de fisiere, in afara de cele SAS prin indicarea tipului respectiv. Forma generala este: LIBNAME libref engine locatie fisiere ; unde engine reprezinta motorul de baze de date disponibil in sistemul de operare (de ex. BDMP, OSIRIS, SPSS, etc.) procedura CONTENTS proc CONTENTS se foloseste pentru a vizualiza fie continutul unei biblioteci, fie partea de descriptor unui fisier SAS. Forma generala este: PROC CONTENTS DATA=libref._ALL_ NODETAILS; RUN; unde libref este biblioteca; _ALL_ cere listarea tuturor fisierelor din biblioteca 15 ; nodetails/nods suprima afisarea informatiilor detaliate despre fiecare fisier atunci cand se specifica _all_. 15 se foloseste un. inainte de _ALL_ Exemplu: proc contents data=mylib._all_ nods; afiseaza continutul bibliotecii mylib. Pentru a vizualiza descriptorul unui tabel SAS, de exemplu mylib.admit, putem scrie: proc contents data=mylib.admit;

19 19 procedura DATASETS procedura DATASETS se poate folosi tot pentru a vizualiza continutul unei biblioteci sau fisier SAS. Forma generala a procedurii este: PROC DATASETS; CONTENTS DATA=libref._ALL_ NODETAILS; QUIT; unde 16 : contents va descrie continutul fisierelor SAS din biblioteca libref; Urmatorii pasi vor avea in principiu acelasi rezultat 17 : proc datasets; contents data=sasuser._all_ nods; quit; 16 _all_ si nodetails/nods au aceeasi functie ca si la proc contents 17 diferenta dintre a folosi proc contents sau instructiunea contents in proc datasets consta in faptul ca in proc contents implicit se ia libref ca fiind work sau user iar pentru instructiunea contents se ia biblioteca curenta proc contents data=sasuser._all_ nods; Descriptorul unui tabel se poate vizualiza cu ambele variante, de exemplu 18 : proc datasets; contents data=sasuser.admit varnum; quit; 18 optiunea varnum conduce la afisarea variabilelor in ordinea creerii lor proc contents data=sasuser.admit varnum;

20

21 Editarea si depanarea programelor SAS Obiective interpretarea mesajelor de eroare; corectarea erorilor; solutii pentru problemele cele mai obisnuite. Interpretarea mesajelor de eroare Tipuri de erori de sintaxa: cand regulile de scriere SAS nu sunt respectate; de date: cand datele nu se potrivesc cu instructiunile SAS procesate; Erorile de sintaxa apar in LOG 19. Orice modificari luate in calcul de SAS si orice observatii vor aparea acolo. Probleme comune sunt: lipsa ; la sfarsitul instructiunii; omiterea unei parti din ; indicarea de optiuni invalide; omiterea instructiunii run. Omiterea instructiunii run afecteaza procesarea daca apare la ultimul pas de procesat, in care caz ultimul pas nu se va rula. 19 intotdeauna trebuie verificat LOG-ul pentru erori de sintaxa pentru ca uneori SAS le ignora inlocuind textul gresit cu ceea ce intuieste ca ar fi fost scris acolo

22

23 Crearea de rapoarte sub forma de liste Obiective cum se alege baza de date cum selectez anumite variabile sau observatii Sortare de date Specificare de totaluri Adaugare de titluri si note de subsol Adaugare de etichete FORMATS Introducere Continutul unui tabel sas se poate lista simplu folosind urmatorul cod: in acest capitol vom considera bilbioteca clinic incarcata pentru toate exemplele libname clinic calea catre fisierele SAS ; proc print data=clinic.admit; Pentru a calcula simplu totaluri pe coloane putem folosi: proc print data=clinic.admit; sum fee; care va afisa pe ultima linie totalul coloanei fee.

24 24 Sortare si etichete Datele se pot sorta dupa mai multe variabile, iar la afisare numele variabilelor se pot inlocui cu etichete. De exemplu: proc sort data=clinic.admit out=admit; by age; programul va sorta tabelul admit dupa variabila age, dupa care va afisa variabilele age, height, weight si fee, la variabila fee, in loc de numele variabilei aparand Admission Fee proc print data=admit label; var age height weight fee; label fee= Admission Fee ; Selectarea de observatii si variabile Se pot alege observatiile si variabilele care apar in raport folosind instructiunea where si, respectiv, var. Exemplu: proc print data=clinic.admit noobs; var age height weight fee; where age>30; procedura va afisa pentru observatiile care au valoarea age mai mare decat 30 valorile pentru variabilele age, height, weight si fee proc PRINT - se foloseste pentru a afisa continutul unui tabel. Forma generala: PROC PRINT <DATA=SAS-data-set>; RUN; unde SAS-data-set este numele tabelului SAS de afisat. Exemplu: libname patients c:\records\patients ; proc print data=patients.therapy; Implicit:

25 25 se afiseaza toate observatiile si variabilele o coloana Obs cu numarul observatiei apare in stanga variabilele apar in ordinea din tabel Selectarea variabilelor se face folosind instructiunea var urmata de lista de variabile separate prin spatiu. Exemplu proc print data=clinic.admit; var age height weight fee; Adaugarea optiunii noobs suprima coloana de observatii din stanga: proc print data=clinic.admit noobs; var age height weight fee; In loc de noobs se poate folosi instructiunea ID care specifica ce variabila(e) sa inlocuiasca coloana Obs. Forma generala: Exemplu: ID variabila(e); proc print data=sales.reps; id idnum lastname; Daca variabila din id apare si pe lista de var atunci va aparea in doua coloane diferite: proc print data=sales.reps; id idnum lastname; var idnum sex jobcode salary; Selectarea observatiilor Pentru a selecta doar anumite observatii se foloseste instructiunea where. Intr-un pas se poate folosi o singura instructiune where. Forma generala: where expresie-where; unde expresie-where specifica conditia de selectare a observatiilor.

26 26 Expresii WHERE operatori de comparatie: = sau eq - egal cu ˆ = sau ne - diferit de > sau gt - mai mare decat < sau lt - mai mic decat >= sau ge - mai mare sau egal decat <= sau le - mai mic sau egal decat Operatorul CONTAINS selecteaza observatii care includ sirul de caractere indicat. In locul lui se poate folosi si?. Exemple: where firstname CONTAINS Jon ; where firstname? Jon ; Compunerea observatiilor se face folosind operatorii logici: and sau & - şi or sau - sau proc SORT ordoneaza observatiile din tabelul SAS; where age<=55 and pulse>75; where area= A or region= S ; where ID>1050 and state= NC ; sau where actlevel= LOW or actlevel= MOD ; where fee= or fee=178.20; sau operatorul IN: where actlevel in ( LOW, MOD ); where fee in (124.80,178.20); sau se pot folosi paranteze pentru a controla ordinea evaluarii: where (age<=55 and pulse>75) or area= A ; where age<=55 and (pulse>75 or area= A ); poate crea un tabel SAS nou, ordonat; implicit inlocuieste tabelul initial; poate sorta dupa mai multe variabile, crescator sau descrescator; nu genereaza output; trateaza valorile lipsa ca si valori minime. Forma generala: PROC SORT DATA=SAS-data-set <OUT=SAS-data-set>; RUN; BY <DESCENDING> BY-variable(s); unde:

27 27 data indica tabelul de ordonat; out specifica tabelul in care sa se salveze datele ordonate 20 ; variabilele by sunt cele dupa care se face ordonarea; optiunea descending sorteaza variabila urmatoare descrescator. Exemplu: proc sort data=clinic.admit out=work.wgtadmit; by weight age; 20 daca nu se specifica nici un tabel se va inlocui tabelul dat cu varianta ordonata procedura sort ordoneaza tabelul admit dupa variabilele weight, apoi dupa age si copiaza observatiile ordonate in tabelul wgtadmit proc print data=work.wgtadmit; var age height weight fee; where age>30; proc sort data=clinic.admit out=work.wgtadmit; by descending weight age; optiunea descending actioneaza doar asupra variabilei care o umreaza (in acest caz weight) proc print data=work.wgtadmit; var age height weight fee; where age>30; Generarea de totaluri pe coloane - se face folosind instructiunea sum cu forma generala: sum variabila(e) unde variabila(e) e o variabila sau mai multe separate prin spatii, pentru care se calculeaza totalurile. Exemplu: proc print data=clinic.insure; var name policy balancedue; where pctinsured < 100; sum balancedue; procedura va afisa observatiile pentru care pctinsured e mai mic decat 100, cu total la variabila balancedue.

28 28 Subtotalurile se pot calcula combinand instructiunea sum cu by. Forma generala a instructiunii by in proc print este BY <DESCENDING> BY-variable-1 <...<DESCENDING> <BY-variable-n>> <NOTSORTED>; unde By-variable indica variabilele dupa care sa se faca gruparea, separate prin spatii. optiunea descending precizeaza ca datele sunt sortate descrescator dupa variabila care ii urmeaza; optiunea notsorted anunta ca tabelul nu e sortat 21. Exemplu: proc sort data=clinic.admit out=work.activity; by actlevel; 21 daca nu se foloseste optiunea notsorted, datele trebuie sortate anterior sau indexate corespunzator va genera cate un tabel pentru fiecare valoare distincta a actlevel, cu subtotal pentru variabila fee. proc print data=work.activity; var age height weight fee; where age>30; sum fee; by actlevel; Pentru a genera un singur tabel cu subtotaluri se combina by cu id Exemplu: coloana Obs se suprima; proc sort data=clinic.admit out=work.activity; by actlevel; proc print data=work.activity; var age height weight fee; where age>30; sum fee; by actlevel; id actlevel; variabila id/by apare pe prima coloana; fiecare valoare a variabilelor id/by este tiparita la inceputul fiecarui grup si pe linia care contine subtotalul grupului.

29 29 Pentru a afisa fiecare subtotal pe alta pagina se foloseste pageby: pageby by-variable; unde by-variable (apare si in instructiunea by) controleaza cand incepe proc print o pagina noua 23. Exemplu: 23 cand se modifica valoarea proc sort data=clinic.admit out=work.activity; by actlevel; proc print data=work.activity; var age height weight fee; where age>30; sum fee; by actlevel; id actlevel; pageby actlevel; Adaugarea de titluri si note de subsol TITLE si FOOTNOTE Pentru a adauga titluri si note de subsol se folosesc instructiunile globale title si footnote in forma generala: title<n> text ; footnote<n> text ; unde n este un numar intre 1 si 10 care specifica linia din titlu sau nota de subsol iar text este textul efectiv cuprins in ghilimele. Valoarea 1 pentru n se poate omite. Titlul implicit este The SAS System. Exemple: title1 Heart Rates for Patients with ; title3 Increased Stress Tolerance Levels ; proc print data=clinic.stress; var resthr maxhr rechr; where tolerance= I ;

30 30 footnote1 Data from Treadmill Tests ; footnote3 1st Quarter Admissions ; proc print data=clinic.stress; var resthr maxhr rechr; where tolerance= I ; Titlurile si notele de subsol sunt instructiuni globale care raman valabile pe toata durata sesiunii de lucru pana cand sunt modificate 24 anulate. Anularea se face: 24 modificarea se face atribuind alt titlu/footnote nivelului respectiv title<n>; footnote<n>; Atribuirea de etichete Pentru a adauga etichete coloanelor se foloseste: instructiunea label pentru a atribui etichete variabilelor; optiunea label in proc print pentru a afisa etichetele. Forma generala a instructiunii label este LABEL variable1= label1 variable2= label2... ; etichetele definite intr-un pas proc sunt valabile doar in interiorul pasului respectiv Exemplu: proc print data=clinic.therapy label; label walkjogrun= Walk/Jog/Run ; Se pot folosi mai multe instructiuni label: proc print data=clinic.admit label; var age height; label age= Age of Patient ; label height= Height in Inches ; sau, acelasi lucru:

31 31 proc print data=clinic.admit label; var actlevel height weight; label actlevel= Activity Level height= Height in Inches weight= Weight in Pounds ; Formatarea datelor Atribuirea de formate temporare Formatele controleaza felul cum sunt afisate datele, folosind instructiunea format. Instructiunea format influenteaza doar felul in care sunt afisate datele, si nu valorile efective. Forma generala este: FORMAT variable(s) format-name; unde se specifica un format-name pentru fiecare variabila dorita in lista de variable(s). format-name poate fi un format predefinit SAS sau definit de utilizator 25. Exemplu: proc print data=clinic.admit; var actlevel fee; where actlevel= HIGH ; format fee dollar4.; folosit intr-o procedura proc, formatul atribuit e valabil doar in interiorul procedurii 25 Exemple de instructiuni format: format date mmddyy8.; afiseaza data sub forma 06/05/14; format net comma5.0 gross comma8.2; afiseaza net de forma 1,234 si gross de forma 5, format net gross dollar9.2; afiseaza ambele variabile in format 1, Specificarea formatelor SAS Tabelul urmator prezinta cele mai folosite formate predefinite SAS: Format valori exemplu COMMAw.d numerice, cu zecimale si virgula pentru mii comma8.2 DOLLARw.d semn de dolar, virgula de mii si zecimale dollar6.2 MMDDYYw. data luna/zi/an; w controleaza nr de cifre an mmddyy10. w rotunjit pana la cel mai apropiat intreg cu w cifre 7. w.d rotunjit la d zecimale folosind w caractere 8.2 $w. format caracter cu w pozitii $12. DATEw. data de forma 16MAY14 (DATE7.) sau 16MAT2014 (DATE9.) date9. Parametrii w si d reprezinta: w lungimea totala afisata, incluzand virgule, puncte, etc. 26 ; d numar de zecimale 27 ; 26 daca formatul este prea mic pentru datele din tabel, in LOG se afiseaza o nota si formatul se converteste automat la BEST 27 daca e cazul se afiseaza valoarea rotunjita la d zecimale

32 32 Exemple: Valoare Format Afisare COMMA , DOLLAR12.2 $38, DOLLAR9.2 $ DOLLAR MMDDYY8. 01/01/60 0 MMDDYY10. 01/01/ DATE7. 01JAN60 0 DATE9. 01JAN1960 datele se pastreaza cu formatul intreg, unde valoarea 0 reprezinta data de 1 ianuarie 1960, iar restul datelor reprezinta numarul de zile trecute (pozitive) respectiv pana la (negative) aceasta data Folosirea etichetelor si formatelor permanente Pentru a atribui o eticheta sau format unei variabile permanent trebuie folosite intr-un pas data, astfel incat sa fie salvate impreuna cu tabelul SAS. Exemplu: data flights.march; set flights.mar01; label date= Departure Date ; format date date9.; proc print data=flights.march label; se creeaza tabelul march din mar01 adaugand variabilei date eticheta Departure Date si formatul date9.; optiunea label din proc print asigura afisarea etichetei; nu mai e nevoie de format aici pentru ca formatul e salvat in tabelul march. Tabelul mar01 nu se gaseste intre tabele generate - acest exemplu e doar ilustrativ cu rezultatul de forma (partial): Partial Listing Obs Departure Date Dest Boarded 1 01MAR2000 LON MAR2000 PAR MAR2000 LON MAR2000 COP MAR2000 MUN 147 Formatele personalizate se pot crea folosind proc format care va fi prezentata intr-un capitol viitor.

33 Crearea de tabele SAS din fisiere text Obiective Din nou despre biblioteci... Despre fisiere text... Creare de tabele SAS Citirea din fisiere Crearea de variabile noi Selectare de observatii Citirea datelor instream; Fisierele text care contin date organizate pe campuri sunt universal folosite pentru ca nu depind de sistemul de operare si de programul de software folosit pentru citire/scriere. Deobicei avem informatii despre organizarea fisierului: nume, titlu, marimea campurilor si o descriere pentru interpretare. Pasii pentru crearea de tabele SAS din fisiere text sunt: 1. Se incarca bilbioteca in care se pastreaza noul tabel. 2. Se ruleaza un pas DATA prin care se citeste fisierul text si care creeaza tabelul. Se specifica: (a) Locatia/numele fisierului text (b) Numele tabelului SAS (c) O referinta catre fisierul text (d) O descriere a datelor 3. Dupa pasul DATA tabelul e gata de afisare/ interpretare/ procesare libname se foloseste dupa cum s-a introdus mai devreme. Pentru a se anula un nume de biblioteca se foloseste

34 34 Sarcina Instructiunea SAS Atribuirea unei biblioteci SAS LIBNAME Referirea unui fisier extern FILENAME Denumirea unui tabel SAS DATA Identificarea unui fisier extern INFILE Descrierea datelor INPUT Executarea pasului DATA RUN Afisarea datelor PROC PRINT... PROC/ DATA Tabela 1: instructiuni de citire fisiere text libname libref clear; Filename se foloseste similar cu libname, dar aici se indica un fisier de citit impreuna cu toata calea spre el 28 sau un director in care se afla mai multe fisiere text FILENAME teste C:\users\ro\teste.dat ; 29 FILENAME teste C:\users\ro\ ; Infile se foloseste impreuna cu referinta definita de filename infile teste;... sau...infile teste(exemplu.dat); daca teste Forma generala a infile este: indica un director in care este fisierul exemplu.dat infile fisiere <optiuni>; unde fisiere poate fi un fileref definit cu filename sau locatia efectiva pe disc a fisierului. Una din optiuni este dlm - delimitatorul campurilor in fisierul citit; implicit este spatiu. Input se foloseste cand datele sunt organizate in campuri fixe (ca si latime) si contin doar caractere standard. Caracterele standard sunt numere,., Forma genererala este:, numere in forma scientific, semne + sau -. Caracterele nonstandard sunt caracterele speciale (%,$, #,...), input variabila; <$> startcol-endcol?; data/ora, binare, hexazecimale, etc. unde variabila este numele variabilei SAS atribuit campului; $ - atribuie tipul caracter; startcol/endcol coloana de inceput/sfarsit; Exemplu: filename exer c:\users\exer.dat ; Numele variabilelor raman salvate exact in forma in care sunt date la creerea lor (majuscule/minuscule) data exercise; infile exer; input ID $ 1-4 Age 6-7 ActLevel $ 9-12 Sex $ 14; Numele variabilelor se supun conventiilor SAS: trebuie sa aiba lungime intre 1-32 caractere;

35 35 trebuie sa inceapa cu o litera sau _; poate contine orice combinatie de numere, litere si _. La citirea datelor din fisier, erorile sunt consemnate in LOG indicandu-se linia si coloana unde a aparut eroarea. Crearea si modificarea de variabile - pentru a crea sau modifica variabile se foloseste instructiunea de atribuire: variabila=expresie; unde variabila este o variabila existenta sau una noua; instructiunea de atribuire nu incepe cu cuvant cheie expresie este o expresie SAS; Expresiile SAS se folosesc pentru a transforma variabile, a crea variabile noi, a procesa variabile conditionat, calcula valori noi, atribui valori noi. O expresie este o secventa de operanzi si operatori care formeaza un set de instructiuni. OPERATOR Actiune prioritate - - Unar (-x) I ** Ridicare la putere I * Inmultire II / Impartire II + Adunare III - Scadere III Ordinea operatiilor: primeaza prioritatea; Tabela 2: Operatorii aritmetici in SAS operatiile efectuate asupra valorilor missing rezulta in valori lipsa (missing) cele cu prioritatea I se iau in ordine de la dreapta la stanga; cele cu prioritate II si III se iau in ordine de la stanga la dreapta; parantezele se pot folosi pentru a controla prioritatea. Operatorii de comparatie si cei logici sunt acceasi cu cei prezentati la instructiunea where.

36 36 Exemple data clinic.stress; infile tests; input ID 1-4 Name $ 6-25 RestHr MaxHR RecHR TimeMin TimeSec Tolerance $ 45; TotalTime=(timemin*60)+timesec; se creeaza variabila TotalTime din timemin si timesec data clinic.stress; infile tests; input ID 1-4 Name $ 6-25 RestHr MaxHR RecHR TimeMin TimeSec Tolerance $ 45; resthr=resthr+(resthr*.10); se re-calculeaza valoarea lui resthr Constantele Data se folosesc pentru a atribui valori de tip data. Pentru aceasta data se reprezinta in format ddmmmyy sau dmmmyyy 31 urmate de un D. data clinic.stress; infile tests; input ID 1-4 Name $ 6-25 RestHr MaxHR RecHR TimeMin TimeSec Tolerance $ 45; TotalTime=(timemin*60)+timesec; TestDate= 01jan2000 d; 31 ghilimelele sunt obligatorii exista si constante de tip ora sau data-ora: Time= 9:25 t; sau DateTime= 18jan2005:9:27:05 dt; Selectarea observatiilor Instructiunea IF pentru extragere de date in pasul data conduce la procesarea observatiilor care indeplinesc o anumita conditie precizata in interiorul instructiunii. Forma generala este: IF expression; unde expression este o expresie SAS. Daca expression este adevarata pasul data continua sa proceseze observatia respectiva. Daca expression nu e adevarata nu se mai proceseaza nimic/se trece la inceputul pasului data pentru procesarea observatiei urmatoare. Exemplu:

37 37 data clinic.stress; infile tests; input ID 1-4 Name $ 6-25 RestHr MaxHR RecHR TimeMin TimeSec Tolerance $ 45; if tolerance= D ; TotalTime=(timemin*60)+timesec; se selecteaza doar observatiile pentru care tolerance este egala cu D Crearea datelor direct Exista si optiunea de a folosi instructiunea datalines pentru crearea de tabele SAS direct din cod. Forma generala este: Exemplu: datalines; data clinic.stress; input ID 1-4 Name $ 6-25 RestHr MaxHR RecHR TimeMin TimeSec Tolerance $ 45; if tolerance= D ; TotalTime=(timemin*60)+timesec; datalines; 2458 Murray, W D 2462 Almers, C I 2501 Bonaventure, T I 2523 Johnson, R S 2539 LaMance, K D 2544 Jones, M N 2552 Reberson, P D 2555 King, E I 2563 Pitts, D S 2568 Eberhardt, S N 2571 Nunnelly, A I 2572 Oberon, M D 2574 Peterson, V D 2575 Quigley, M I 2578 Cameron, L I 2579 Underwood, K S 2584 Takahashi, Y D 2586 Derber, B N 2588 Ivan, H N

38 Wilcox, E I 2595 Warren, C S ; dupa o instructiune datalines nu mai e nevoie de ; mai mult, orice este intre ; si un eventual este ignorat. Crearea unui fisier text cu date Urmatorul cod citeste datele din fisierul referit de tests si le salveaza in tabelul clinic.stress data clinic.stress; infile tests; input ID 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; if tolerance= D ; TotalTime=(timemin*60)+timesec; facand modificari (se adauga o variabila, se filtreaza datele). Pentru a salva noul tabel intr-un fisier text se foloseste cuvantul cheie _null_ in pasul data impreuna cu o instructiune set care specifica tabelul SAS de salvat in fisier. Numele fisierului se specifica folosind comanda file. data _null_; set clinic.stress; file newdata; put id 1-4 name 6-25 resthr maxhr rechr timemin timesec tolerance 45 totaltime 47-49; Pentru a descrie datele s-a folosit comanda put similara cu input, cu diferenta ca nu e nevoie de semnul de $ pentru variabilele de tip caracter. newdata poate fi o referinta catre un fisier sau chiar adresa fizica a fisierului in care se doreste salvarea datelor

39 Procesarea pasului DATA Obiective: identificarea celor doua faze din procesarea pasului data interpretarea variabilelor automate identificarea fazelor in care apar erori depanarea pasului data testarea programelor/identificarea erorilor in LOG Cum proceseaza SAS pasul data Procesarea se face in doua faze: faza de compilare in care se verifica erori de sintaxa. Dupa aceasta faza se creaza partea de descriptor a tabelului. faza de executie incepe dupa ce compilarea are succes. In aceasta faza SAS citeste datele si le proceseaza. Pasul data se proceseaza pentru fiecare observatie in parte. Compilarea La inceputul fazei de compilare se creaza un input buffer - daca datele se citesc din fisier. Urmatorul creat este program data vector - PDV - zona din memorie in care se construieste tabelul. PDV contine doua variabile automate folosite pentru procesare, dar care nu sunt scrise in tabel: _n_ care numara de cate ori se executa pasul data _error_ care semnaleaza erori; valoarea implicita este 0; daca apare o eroare ia valoarea 1. In aceasta faza se verifica sintaxa. In functie de erorile ce apar se opreste sau nu procesarea.

40 40 Pe masura ce se compileaza comanda input se adauga o pozitie in PDV pentru fiecare variabila. Deobicei in acest moment se stabileste si tipul si marimea variabilei. Variabilele create in interiorul pasului data sunt si ele trecute in PDV. La sfarsitul pasului data se incheie faza de compilare si se creaza partea de descriptor a tabelului. Executia In aceasta faza se creaza partea de date a tabelului. In timpul executiei fiecare rand din fisier/tabelul sursa e citit, trecut in PDV si apoi adaugat noului tabel ca si observatie. La inceputul fazei de executie valoarea lui _n_ este 1 si a _error_ este 0. Restul variabilelor sunt initializate missing. Pasul data se repeta pentru fiecare rand/observatie citita, incrementand valoarea lui _n_ la fiecare repetare. Executia se termina cu un mesaj in LOG. Adaugarea de mesaje in LOG In depanarea programelor mesajele din LOG nu sunt intotdeauna suficiente pentru a indica problema. E util ca in unele faze sa putem face niste teste si sa afisam mesaje in LOG folosind instructiunea put. Exemplu: data work.test; infile loan; input Code $ 1 Amount 3-10 Rate Account $ Months 27-28; if code= 1 then type= variable ; else if code= 2 then type= fixed ; else put MY NOTE: invalid value: code= _n_= _error_=; in instructiunea put putem folosi mesaje de tip caracter, afisa valori de variabile; daca numele variabilei este urmat de = se va afisa si numele variabilei; _all_ afiseaza toate variabilele

41 Proc FORMAT - se foloseste pentru a controla forma de afisare a observatiilor; pentru decodificari; afisari personalizate; etc. Obiective crearea de formate personalizate salvarea formatelor permanent asocierea formatelor cu variabilele Forma generala: proc format <optiuni>; unde optiuni cuprind: library=libref specifica libref pentru biblioteca care contine catalogul permanent de formate SAS; fmtlib afiseaza continutul catalogului de formate. Salvarea formatelor permanent se face prin specificarea bibliotecii in optiunea library=libref. libref trebuie definit inainte cu o comanda libname 32. Exemplu: libname library c:\sas\formats\lib ; proc format library=library;... ; Formatele create de proc format sunt salvate intr-un catalog de formate. Daca biblioteca SAS nu contine un catalog de formate, SAS il creaza automat. Daca nu se specifica optiunea library=, formatele se salveaza in catalogul implicit temporar work.formats. 32 se recomanda, dar nu e obligatoriu, folosirea numelui library pentru biblioteca in care se salveaza formatele se poate folosi si instructiunea lib: proc format lib=library; Se poate specifica si catalogul din biblioteca library: proc format lib=library.catalog;

42 42 Definirea formatului Definirea formatelor personalizate se face folosind instructiunea value: VALUE format-name range1= label1 range2= label2... ; instructiunea value se termina doar dupa lista de etichete unde: format-name este numele noului format. Numele formatului trebuie sa: inceapa cu $ pentru date in format caracter; nu pot fi mai lungi de 8 caractere; nu pot supra-scrie un nume de format deja existent in SAS; nu se pot termina cu un numar; nu se termina cu. cand apar in instructiunea value. range indica valori ale variabilelor; label este un text cuprins intre ghilimele. Exemplu: proc format lib=library; value jobfmt 103= manager 105= text processor 111= assoc. technical writer 112= technical writer 113= senior technical writer ; VALUE range pot fi: o valoare unica, de ex. 45 sau s ; un interval numeric, de ex ; un interval de caractere incluse in ghilimele, de ex. A - M ; o lista de valori, de ex. 9,3,4 sau a, v, g Valorile din lista pot fi de tip caracter sau numerice, dar nu o combinatie a lor deoarece formatele se vor aplica unor variable cu tipul stabilit.

43 43 Cand formatul se defineste pentru date de tip caracter, acestea trebuie cuprinse in ghilimele 34. Numele formatului trebuie sa inceapa cu $. Exemplu: 34 in plus se tine cont de majuscule/minuscule proc format lib=library; value $grade A = Good B - D = Fair F = Poor I, U = See Instructor ; Specificarea de intervale Simbolul < se poate folosi pentru a defini intervale distincte, ca in exemplul urmator: proc format lib=library; value agefmt 0-<13= child 13-<20= teenager 20-<65= adult = senior citizen ; Cuvintele cheie low si high indica valorile minime si maxime, respectiv, pentru o variabila. low nu include si valorile lipsa 35. Pentru a le trata separat se foloseste other. eticheta teenager se va atribui de la 13 ani inclusiv pana la 19 ani 35 la variabilele de tip caracter low include si valorile missing proc format lib=library; value agefmt low-<13= child 13-<20= teenager 20-<65= adult 65-high= senior citizen other= unknown ; Definirea formatelor multiple In proc format se pot folosi mai multe instructiuni value: proc format lib=library; value jobfmt 103= manager 105= text processor

44 44 111= assoc. technical writer 112= technical writer 113= senior technical writer ; value $respnse Y = Yes N = No U = Undecided NOP = No opinion ; In log ar trebui sa apara o nota de forma: NOTE: Format JOBFMT has been written to LIBRARY.FORMATS. Folosirea formatelor Pentru folosirea formtelor definite intr-o anumita biblioteca, aceasta trebuie sa fie atribuita in sesiunea in care se folosesc formatele. Atribuirea de formate variabilelor se face in acelasi mod ca si in cazul formatelor predefinite SAS, adaugandu-se un. dupa numele formatului: format salary comma9.2 jobtitle jobfmt.; Folosita intr-un pas data instructiunea format asociaza permanent formatul cu variabila respectiva, iar in pasul proc doar temporar. Listarea formatelor existente intr-o biblioteca sau catalog se face folosind instructiunea fmtlib: libname library c:\sas\formats\lib ; proc format library=library fmtlib;

45 Statistici descriptive simple Pentru datele numerice continue se foloseste proc means iar petnru date discrete se foloseste proc freq. proc Means - pentru calcularea de statistici descriptive - medie, mediana, minim, maxim, etc. Forma generala de baza este: PROC MEANS <DATA=SAS-data-set> <statistic-keyword(s)> <option(s)>;... RUN; unde SAS-data-set este tabelul folosit; statistic-keyword(s) sunt statisticile de calculat 36 ; <option(s)> controleaza continutul, analiza si modul de afisare. In forma cea mai simpla se poate folosi: 36 implicit se afiseaza numarul de valori (nonmissing), media, abaterea medie patratica, minimul si maximul pentru fiecare variabila numerica din tabel proc means data=perm.survey; Statisticile care se pot enumera sunt prezentate in tabelele 3-5. Numarul de zecimale afisat este controlat cu optiunea maxdec=n unde n reprezinta numarul maxim de zecimale de afisat. proc means data=clinic.diabetes min max maxdec=0;

46 46 Cuvant cheie Descriere conform manualului Tabela 3: Statistici descriptive CLM Two-sided confidence limit for the mean CSS Corrected sum of squares CV Coefficient of variation KURTOSIS / KURT Kurtosis LCLM One-sided confidence limit below the mean MAX Maximum value MEAN Average MIN Minimum value N Number of observations with non-missing values NMISS Number of observations with missing values RANGE Range SKEWNESS / SKEW Skewness STDDEV / STD Standard deviation STDERR / STDMEAN Standard error of the mean SUM Sum SUMWGT Sum of the Weight variable values UCLM One-sided confidence limit above the mean USS Uncorrected sum of squares VAR Variance MEDIAN / P50 Median or 50th percentile Tabela 4: Cuantile P1 1st percentile P5 5th percentile P10 10th percentile Q1 / P25 Lower quartile or 25th percentile Q3 / P75 Upper quartile or 75th percentile P90 90th percentile P95 95th percentile P99 99th percentile QRANGE Difference between upper and lower quartiles: Q3-Q1 Selectarea variabilelor se face cu instructiunea var: var variabila(e); proc means data=clinic.diabetes min max maxdec=0; var age height weight; sau un interval de variabile: proc means data=perm.survey mean stderr maxdec=2; var item1-item5;

47 47 PROBT Probability of a greater absolute value for the t value Tabela 5: Testare de ipoteze T Student s t for testing the hypothesis that the population mean is 0 Gruparea observatiilor se poate face folosind instructiunea class: class variabila(e); proc means calculeaza statisticile indicate pentru fiecare categorie definita de valorile distinte ale variabilelor din lista class 37. proc means data=clinic.heart maxdec=1; var arterial heart cardiac urinary; class survive sex; Gruparea observatiilor by variabila(e); se poate face si folosind by: proc sort data=clinic.heart out=work.heartsort; by survive sex; proc means data=work.heartsort maxdec=1; var arterial heart cardiac urinary; by survive sex; 37 variabilele din lista class vor fi folosite doar pentru grupare, pentru ele nu se calculeaza statistici BY si CLASS difera prin faptul ca by necesita ca tabelul sa fie ordonat dupa variabilele respective si prin modul de afisare (by produce mai multe tabele mai mici, class un tabel mare). Crearea unui tabel cu rezultatele proc means - se face folosind instructiunea output: OUTPUT OUT=SAS-data-set <statistic-keyword=variable-name(s)>; unde: SAS-data-set reprezinta tabelul in care se salveaza rezultatele; statistic keyword= specifica statistica de salvat; variable-name(s) numele variabilelor care vor pastra statistica respectiva si care trebuie sa apara si in instructiunea var 38. proc means data=clinic.diabetes; var age height weight; class sex; output out=work.sum_gender mean=avgage AvgHeight AvgWeight daca nu se foloseste optiunea statistic-keywords se salveaza statisticile implicite calculate de proc means 38 in aceeasi ordine ca si in instructiunea var

48 48 min=minage MinHeight MinWeight; proc print data=work.sum_gender; Optiunea noprint va suprima afisarea rezulatului, rezultand doar salvarea tabelului din output= proc SUMMARY - este similara cu proc print doar ca: are nevoie de optiunea print pentru a afisa rezultate. Exemplu: proc summary data=clinic.diabetes print; var age height weight; class sex; output out=work.sum_gender mean=avgage AvgHeight AvgWeight; fara optiunea print se salveaza doar tabelul work.sum_gender, cu optiunea print se si afiseaza rezultatele proc FREQ - este o procedura descriptiva dar si statistica. In forma de baza (cea mai simpla) avem: PROC FREQ <DATA=SAS-data-set>; RUN; Implicit proc freq calculeaza frecventa, procent, frecventa cumulativa si procentul cumulativ pentru toate valorile si toate variabilele di tabel 39. proc freq data=parts.widgets; Alegerea variabilelor se face folosind instructiunea tables: tables variabila(e); 39 frecventa=numar de observatii cu acea valoare; procent=frecventa/numarul total de observatii; frecventa cumulativa= suma tuturor frecventelor de deasupra valorii curente (incluzand-o); procentul cumulativ= suma tuturor procentelor de deasupra valorii curente (incluzand-o) variabilele vor aparea in ordinea in care sunt listate in instructiunea tables proc freq data=finance.loans; tables rate months; sau poate fi: tables item1-item3; Optiunea nocum suprima afisarea valorilor cumulate; se foloseste sub forma:tables variabile /nocum;

49 49 Crearea tabelelor bi-dimensionale - se face tot cu tables prin unirea variabilelor * : unde: TABLES variable-1*variable-2 <*... variable-n>; variable-1 specifica liniile; variable-2 specifica coloanele; variable-n - pentru tabele multi-dimensionale. In acest caz proc freq produce tabele cu celule care contin frecventa, procent din total, procent de pe linie si procent pe coloana. De exemplu: proc format; value wtfmt low-139= < = high= > 180 ; value htfmt low-64= < 5 5" 65-70= " 71-high= > 5 10" ; ATENTIE LA EFECTUL FOLOSIRII FORMAT proc freq data=clinic.diabetes; tables weight*height; format weight wtfmt. height htfmt.; Tabelele n-dimensionale - se produc mai multe tabele bidimensionale cu cate un tabel pentru fiecare nivel corespunzator celorlaltor variabile. Ultimele doua variabile de pe lista din tables vor determina liniile si coloanele tabelelor bi-dimensionale. proc format; value wtfmt low-139= < = high= > 180 ; value htfmt low-64= < 5 5" 65-70= " 71-high= > 5 10" ; proc freq data=clinic.diabetes;

50 50 tables sex*weight*height; format weight wtfmt. height htfmt.; Schimbarea formatului tabelului adaugata instructiunii tables se poate face cu optiunea crosslist proc format; value wtfmt low-139= < = high= > 180 ; value htfmt low-64= < 5 5" 65-70= " 71-high= > 5 10" ; proc freq data=clinic.diabetes; tables sex*weight*height / crosslist; format weight wtfmt. height htfmt.; Pentru a genera un singur tabel se foloseste in mod similar optiunea list. proc format; value wtfmt low-139= < = high= > 180 ; value htfmt low-64= < 5 5" 65-70= " 71-high= > 5 10" ; proc freq data=clinic.diabetes; tables sex*weight*height / list; format weight wtfmt. height htfmt.; Suprimarea unor informatii norow sau nocol. se face folosind optiunile nofreq, nopercent,

51 Crearea si gestionarea variabilelor Obiective creare si initializare de variabile care sa acumuleze valori atribuiri conditionate atribuirea de lungime de variabile stergere de observatii selectare de variabile atribuirea de formate si etichete permanente Crearea si modificarea variabilelor Acumularea de totaluri pentru crearea de variabile in care se insumeaza valorile altor variabile se realizeaza folosind instructiunea sum: unde: variabila+expresie; variabila este numele variabilei care acumuleaza 40 ; expresie este orice expresie SAS valida 41. Instructiunea sum adauga valoarea expresiei la variabila din stanga semnului +. La inceputul urmatoarei executii a pasului data valoarea variabilei este scrisa in PDV si folosita pentru procesarea urmatoarei observatii. 40 variabila aceasta trebuie sa fie de tip numeric; este initializata cu 0 inainte sa se citeasca prima observatie; valoarea ei se pastreaza de la o executie la alta a pasului data 41 daca expresie retunreaza o valoare lipsa, atunci e tratata ca si 0 data clinic.stress; infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec 42-43

52 52 Tolerance $ 45; TotalTime=(timemin*60)+timesec; SumSec+totaltime; Initializarea variabilelor de acumulare se face implict cu valoarea 0. Daca dorim o alta valoare, se foloseste instructiunea retain care pe langa faptul ca atribuie o valoare initiala, impiedica re-initializarea variabilei la fiecare executie a pasului data. Forma generala: in SumSec se calculeaza sumele partiale ale totaltime retain variabila valoare-initiala; Instructiunea retain se executa o data, la compilare, si creaza variabila daca ea nu exista; initializeaza variabila nu are nici un efect asupra variabilelor care sunt citite cu set, merge sau update. Exemplu: data clinic.stress; infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; sumsec este initializata cu valoarea 5400 Atribuiri conditionate de o expresie se realizeaza folosind instructiunea if-then cu forma generala: if expresie then instructiune; unde expresie este o expresie SAS; instructiune este orice instructiune executabila SAS. Exemple

53 53 data clinic.stress; infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; if totaltime>800 then TestLength= Long ; testlength primeste valoarea Long pentru observatiile la care totaltime este mai mare de 800 Operatorii logici si de comparatie Exemple: if test<85 and time<=20 then Status= RETEST ; if region in ( NE, NW, SW ) then Rate=fee-25; if target gt 300 or sales ge then Bonus=salary*.05; if status= OK and then Count+1; type=3 if (age^=agecheck time^=3) & error=1 then Test=1; if (age^=agecheck time^=3) & error=1 then Test=1; if status= S or cond= E then Control= Stop ; if not(loghours<7500) then Schedule= Quarterly ; if region not in ( NE, SE ) then Bonus=200; if status= OK and type=3 then Count+1; if status= S or cond= E then Control= Stop ; if not(loghours<7500) then Schedule= Quarterly ; if region not in ( NE, SE ) then Bonus=200; comparatie and & si sau - or or not caracterele sunt in ghilimele cu diferenta intre majuscule/minuscule

54 54 Orice valoare numerica diferita de 0 sau missing este adevarata si poate fi folosita in expresia if. Alternativele se seteaza cu instructiunea else, de exemplu: if totaltime>800 then TestLength= Long ; else if 750<=totaltime<=800 then TestLength= Normal ; else if totaltime<750 then TestLength= Short ; sau data clinic.stress; infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; if totaltime>800 then TestLength= Long ; else if 750<=totaltime<=800 then TestLength= Normal ; else put NOTE: Check this Length: totaltime=; se poate folosi put pentru a testa conditiile. Atribuirea lungimii Atunci cand o variabila noua e creata pornind de la unele existente, preia tipul si lungimea lor. Daca variabila existenta e de tip caracter, celei noi i se atribuie lungimea primei valori intalnite din variabila existenta. Pentru a evita trunchierea cauzata de acest comportament, se poate specifica in pasul data, inainte de a se procesa variabila nou creata, lungimea, folosind instructiunea length cu forma generala: unde length variabile <$> lungime; variabile e o lista de una sau mai multe variabile carora li se atribuie lungimea; semnul $ indica o variabila de tip caracter; lungime este lungimea data variabilelor din lista. Exemple:

55 55 length Type $ 8; length Address1 Address2 Address3 $ 200; length FirstName $ 12 LastName $ 16; data clinic.stress; length trebuie sa apara inainte de prima procesare a variabilei noi create, altfel nu are nici un efect infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; length TestLength $ 6; if totaltime>800 then testlength= Long ; else if 750<=totaltime<=800 then testlength= Normal ; else if totaltime<750 then TestLength= Short ; Selectarea datelor Stergerea de observatii Stergerea unei observatii, de obicei in urma unui test if-then, se face folosind instructiunea delete cu forma generala: delete; in combinatie: if expresie then delete; data clinic.stress; se sterg toate observatiile pentru care resthr e mai putin de 70 infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; if resthr<70 then delete; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; length TestLength $ 6; if totaltime>800 then testlength= Long ; else if 750<=totaltime<=800 then testlength= Normal ; else if totaltime<750 then TestLength= Short ;

56 56 Selectarea variabilelor cu optiunile DROP si KEEP Atunci cand vrem sa pastram doar anumite variabile folosim keep iar cand e mai usor doar sa renuntam la anumite variabile folosim drop. Forma generala este: (drop= variabile) (keep= variabile) unde variabile este o lista de variabile la care se renunta drop) sau se pastreaza (keep). Exemplu data clinic.stress(drop=timemin timesec); infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; if tolerance= D ; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; length TestLength $ 6; if totaltime>800 then testlength= Long ; else if 750<=totaltime<=800 then testlength= Normal ; else if totaltime<750 then TestLength= Short ; O alta varianta este folosirea instructiunilor drop si keep: in tabelul stress se renunta la variabilele timemin si timesec data clinic.stress; infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Tolerance $ 45; if tolerance= D ; drop timemin timesec; TotalTime=(timemin*60)+timesec; retain SumSec 5400; sumsec+totaltime; length TestLength $ 6; if totaltime>800 then testlength= Long ; else if 750<=totaltime<=800 then testlength= Normal ; else if totaltime<750 then TestLength= Short ; acelasi lucru dar cu instructiunea drop Etichetele si formatele pentru noile variabile create se atribuie la fel ca si in cazul celorlaltor variabile.

57 57 Atribuirea conditionala folosind SELECT Atunci cand avem o serie de mai multe conditii exclusive doua cate doua select este mai eficienta decat o serie de if-then. Forma generala este: unde: SELECT <(select-expression)>; END; WHEN-1 (when-expression-1 <..., when-expression-n>) statement; WHEN-n (when-expression-1 <..., when-expression-n>) statement; <OTHERWISE statement;> select incepe grupul de instructiuni; select-expression, optionala, este o expresie SAS care are ca rezultat o singura valoare; when indica instructiuni SAS care sa se execute cand o conditie e adevarata; when-expression... - o expresie SAS, chiar si compusa. otherwise - instructiunea care se executa daca nici o conditie when nu e adevarata; grupul select se termina cu end;. Exemplu: select (a) when (1) x=x*10; when (3,4,5) x=x*100; otherwise; end; valoarea lui a se compara cu 1; daca da x se multiplica cu 10; daca a este 3,4 sau 5, x se multiplica cu 100; pentru orice alta valoare a lui a nu se intampla nimic Intr-un pas data grupul select se poate folosi astfel: data emps(keep=salary group); set sasuser.payrollmaster; length Group $ 20; select(jobcode); when ("FA1") group="flight Attendant I"; when ("FA2") group="flight Attendant II"; when ("FA3") group="flight Attendant III"; when ("ME1") group="mechanic I"; when ("ME2") group="mechanic II"; when ("ME3") group="mechanic III";

58 58 when ("NA1") group="navigator I"; when ("NA2") group="navigator II"; when ("NA3") group="navigator III"; when ("PT1") group="pilot I"; when ("PT2") group="pilot II"; when ("PT3") group="pilot III"; valoarea curenta a lui jobcode este comparata cu valorile din instructiunile when si in functie de rezultate variabila grup ia valoarea indicata in when. when ("TA1","TA2","TA3") group="ticket Agents"; otherwise group="other"; end; Instructiunea select fara expresie : SAS evalueaza fiecare expresie when si executa instructiunea pentru care expresia when e adevarata si iese din grupul select. Daca nici o instructiune when este adevarata si lipseste otherwise SAS emite mesaj de eroare. select; Exemplu when (toy="bear" and month in ( OCT, NOV, DEC )) price=45.00; when (toy="bear" and month in ( JAN, FEB )) price=25.00; when (toy="bear") price=35.00; otherwise; end; Gruparea instructiunilor cu DO Instructiunile if-then/else si select executa doar o singura instructiune SAS cand conditia(ile) e indeplinita. Pentru a executa mai multe instructiuni se grupeaza cu do. Forma generala este: do; instructiuni SAS; end; unde instructiuni SAS se executa ca o singura unitate. data clinic.stress; se pot folosi grupuri do in alte grupuri do cu conditia sa nu se intercaleze do; cu end; diferite infile tests; input ID $ 1-4 Name $ 6-25 RestHR MaxHR RecHR TimeMin TimeSec Exemplu Tolerance $ 45; TotalTime=(timemin*60)+timesec; retain SumSec 5400;

59 59 sumsec+totaltime; length TestLength $ 6 Message $ 20; if totaltime>800 then do; testlength= Long ; message= Run blood panel ; end; else if 750<=totaltime<=800 then testlength= Normal ; else if totaltime<750 then TestLength= Short ; sau alt exemplu data payroll; set salaries; select(payclass); when ( monthly ) amt=salary; when ( hourly ) do; amt=hrlywage*min(hrs,40); if hrs>40 then put CHECK TIMECARD ; end; otherwise put PROBLEM OBSERVATION ; end;

60

61 Citirea tabelelor SAS Obiective crearea unui tabel SAS nou pe baza unuia existent; procesarea cu grupuri by; citirea observatiilor dupa numere; oprirea procesarii in caz de nevoie; scrierea observatiilor explicit in output; identificarea ultimei observatii din tabel; Citirea dintr-un singur tabel - se face intr-un pas data de forma: DATA tabel-nou-creat; SET tabel-din-care-copiem; RUN; libname lab23 c:\drug\allergy\labtests ; libname research c:\drug\allergy ; data lab23.drug1h; set research.cltrials; Exemplu: pasul data creaza tabelul drug1h in biblioteca lab23 copiind toate observatiile din tabelul cltrials din biblioteca research Manipularea datelor Tabelul 6 recapituleaza principalele actiuni care se pot efectua in pasul data asupra datelor 42. data lab23.drug1h(drop=placebo uric); set research.cltrials(drop=triglyc); if sex= M then delete; 42 inclusiv celor citite din tabelul indicat in set Exemplu

62 62 Pentru a Selecta observatii Se foloseste ceva de genul: if resthr<70 then delete; if tolerance= D ; Renunta la niste variabile drop timemin timesec; Crea sau modifica o variabila TotalTime=(timemin*60)+timesec; Initializa o variabila sum retain SumSec 5400; Insuma valori acumulate sumsec+totaltime; declara lungimea length TestLength $ 6; Conditii if totaltime>800 then TestLength= Long ; else if 750<=totaltime<=800 then TestLength= Normal ; else if totaltime<750 Tabela 6: Actiuni etichete Formata pentru afisare then TestLength= Short ; label sumsec= Cumulative Total Seconds ; format sumsec comma6.; if placebo= YES ; TestDate= 22MAY1999 d; retain Days 30; days+1; length Retest $ 5; if cholesterol>190 then retest= YES ; else if 150<=cholesterol<=190 then retest= CHECK ; else if cholesterol<150 then retest= NO ; label retest= Perform Cholesterol Test 2? ; format enddate mmddyy10.; drop si keep sau set. au efecte diferite daca se folosesc in instructiunea data daca nu se doreste in nici un fel procesarea unor variabile atunci drop se poate folosi ca optiunea a lui set: data lab23.drug1h; Exemplu: renuntarea completa la variabilele triglycerides si uricacid set research.cltrials(drop=triglycerides uricacid); if placebo= YES ; daca se doreste renuntarea la o variabila, dar folosirea ei in timput procesarii pasului data atunci optiunea drop trebuie sa apara in instructiunea data, ca in exemplul de mai jos : data lab23.drug1h(drop=placebo); variabila placebo nu va aparea in drug1h dar e folosita pentru selectarea observatiilor in instrucitunea if set research.cltrials(drop=triglycerides uricacid);

63 63 if placebo= YES ; Atunci cand drop e folosit cu instructiunea data, se renunta doar la variabilele din lista, dar acestea sunt citite din tabelul sursa. Procesarea cu by Instructiunea by, folosita intr-un pas data conduce la procesarea observatiilor grupate dupa o variabila. De exemplu: data temp; set usa; by dept; Atunci cand by este folosita cu set: tabelul mentionat in set trebuie sortat dupa variabila din by; pasul data creeaza doua variabile temporare pentru fiecare variabila by: first.variable si last.variable care iau valori 0 sau 1 si identifica prima si ultima observatie din grupul by. first.variable are valoarea 0 pentru prima observatie din grupul by si zero pentru oricare alta. last.variable are valoarea 1 pentru ultima observatie din grupul by si 0 pentru oricare alta. Exemplu: Tabelul usa contine informatii despre salarii ale anajatilor din diferite departamente. Sunt doua categorii de salarii ( S - lunar si H - plata cu ora). Pentru plata cu ora se considera 2000 de ore lucrate anual. Se cere sa se calculeze totalul anual al salariilor pentru fiecare departament intr-un tabel nou numit budget. ; if last.dept selecteaza ultima observatie din grup pentru a fi copiata in budget cu totalul de la payroll proc sort data=company.usa out=work.temp; by dept; la fiecare inceput de grup noi payroll se initializeaza la 0 data company.budget(keep=dept payroll); set work.temp; by dept; if wagecat= S then Yearly=wagerate*12; else if wagecat= H then Yearly=wagerate*2000; if first.dept then Payroll=0; payroll+yearly; if last.dept;

64 64 Pentru a vizualiza rezultatele si a calcula totalul: proc print data=company.budget noobs; sum payroll; format payroll dollar12.2; Cand in by se specifica mai multe variable: first.variable este setata la 1 pentru fiecare valoare noua a fiecarei variabile; o schimbare de valoare a primei variabile by conduce la setarea last.variable la 1 pentru toate cele care ii urmeaza pe lista by Exemplu: Pentru acelasi tabel usa dorim sa calculam totalul anual al salariilor pentru fiecare tip de pozitie si pentru fiecare manager in parte. In program vom specifica doua variabile by: proc sort data=company.usa out=work.temp2; by manager jobtype; data company.budget2(keep=manager jobtype payroll); set work.temp2; by manager jobtype; if wagecat= S then Yearly=wagerate*12; else if wagecat= H then Yearly=wagerate*2000; if first.jobtype then Payroll=0; payroll+yearly; if last.jobtype; Pentru afisare: proc print data=company.budget2 noobs;; by manager; var jobtype; sum payroll; where manager in ( Coxe, Delgado ); format payroll dollar12.2; se afiseaza subtotaluri si totaluri pentru cei doi manageri Citirea observatiilor prin acces direct Pana acum observatiile au fost citite secvential, adica in ordinea in care apareau in sursa citita. In SAS observatiile pot fi accesate si direct folosind optiunea point in instructiunea set. Forma generala este:

65 65 unde variable POINT=variable; indica o variabila numerica temporara care contine numarul observatiei de citit; trebuie initializata inainte de executia instructiunii set. Exemplu: Sa spunem ca vrem sa citim observatia a 5-a dintr-un tabel: de fapt nu asa! data work.getobs5; obsnum=5; set company.usa(keep=manager payroll) point=obsnum; dar acest program ar conduce la un ciclu infinit datorat faptului ca pasul data se executa pana se ajunge la marcajul de sfarsit de fisier. Solutii: Folosirea instructiunii stop care opreste executarea pasului data si sare la urmatorul pas din program: dar nici asa nu e de ajuns :) data work.getobs5(drop=obsnum); obsnum=5; set company.usa(keep=manager payroll) point=obsnum; stop; programarea unei conditii care verifica o valoare invalida pentru variabila point, conducand la o erroare si oprirea procesarii pasului data. Pentru ca in ambele cazuri prezentate mai sus opresc executia pasului data abrupt, observatiile nu se vor scrie in output in aceasta varianta, deci mai e nevoie de inca o etapa. Scrierea explicita a observatiilor se poate face cu o instructiune output. Folosirea output modifica modul in care data scrie observatiile, deci toate observatiile trebuie scrise cu aceasta metoda (nu se pot amesteca). Forma generala: output <tabelsas>; unde tabelsas denumeste tabelul SAS in care se vor scrie observatiile, care trebuie sa apara si in instructiunea data. Daca nu e mentionat nici un tabel observatiile se vor scrie in toate tabelele care apar in instructiunea data. Exemplul de mai sus devine: ACUM DA

66 66 data work.getobs5(drop=obsnum); obsnum=5; set company.usa(keep=manager payroll) point=obsnum; output; stop; proc print data=work.getobs5 noobs; data empty full; set company.usa; output full; Atunci cand se folosesc doua nume de table in data si output are doar un tabel parametru, pasul data va crea cele doua tabele, dar va copia tabelul usa in full iar empty ramane gol. Gasirea sfarsitului de tabel Optiunea end -putem avea nevoie sa identificam sfarsitul de tabel (ultima obsevatie) din diferite motive: sa scriem in output doar o observatie care contine totaluri/sa mai efectuam niste operatii/etc. Pentru a crea o variabila numerica a carei valoare este folosita pentru a identifica ultima observatie se poate folosi optiunea end= in instructiunea set. Forma generala este: end=variable unde variable va contine marker-ul de sfarsit de fisier. variable 43 este initializata cu 0 si va avea valoarea 1 doar cand instructiunea set citeste ultima observatie din tabel. Exemplu: Dorim sa insumam numarul de secunde inregistrate la mai multe teste pe banda de alergat. Urmatorul program calculeaza variabila TotalTime care cumuleaza valorile convertite in secunde: 43 nu este adaugata in tabel Nu se foloseste end= impreuna cu point=: point citeste doar observatia indicata si nu conduce la sfarsitul tabelului data work.addtoend(drop=timemin timesec); set clinic.stress2(keep=timemin timesec); TotalMin+timemin; TotalSec+timesec; TotalTime=totalmin*60+timesec; proc print data=work.addtoend noobs;

67 67 Daca insa vrem sa aflam direct doar valoarea totala atunci putem scrie in tabelul nou creat (addtoend ) doar ultima observatie folosind end= impreuna cu un if: data work.addtoend(drop=timemin timesec); set clinic.stress2(keep=timemin timesec)end=last; TotalMin+timemin; TotalSec+timesec; TotalTime=totalmin*60+timesec; if last; proc print data=work.addtoend noobs; Modul de citire a tabelelor SAS Pasul data citeste si proceseaza tabelele SAS in mod similar cu fisierele text, cu diferenta ca in cazul tabelelor SAS retine valorile variabilelor de la o observatie la alta.

68

69 Combinarea de tabele SAS Moduri de combinare: one to one: se creeaza observatii care contin toate variabilele in fiecare tabel folosind set; concatenare: se ataseaza tabelele unul dupa altul; se foloseste set; intercalare bazata pe variabile comune; se foloseste set,by; match-merging: potriveste observatii din doua sau mai multe tabele intr-una singura pe baza valorilor comune ale unei variabile. pentru combinarea tabelelor se poate folosi si proc sql Citire one-to-one - se face prin mai multe instructiuni set cu care se pot citi tabele diferite sau acelasi tabel de mai multe ori; Forma generala: DATA output-sas-data-set; SET SAS-data-set-1; SET SAS-data-set-2; RUN; unde: output-sas-data-set este numele tabelului nou creat; SAS-data-set-1,2 44 sunt tabelele care se vor combina; 44 se pot specifica oricate tabele sursa in instructiuni set diferite Cum se combina datele: noul tabel contine toata variabilele din toate tabelele din listele set 45 ; numarul de observatii din tabelul nou este egal cu numarul cel mai mic de observatii din tabelele sursa. Observatiile sunt combinate pe baza pozitiilor lor relative din fiecare tabel daca tabelele sursa au variabile cu acelasi nume, variabila din ultimul tabel va supra-scrie toate informatiile citite din tabelele anterioare 46 prima observatie este cuplata cu prima observatie din al doilea tabel, s.a.m.d.; pasul data se opreste cand intalneste primul sfarsit de tabel - deci cand se termina cel mai mic dintre tabele

70 70 Exemplu: Fie tabelele SAS C si D prezentate altaurat (7) si urmatorul cod: data one2one; set c; set d; La executarea codului, pasul data va trece prin pasii prezentati in tabelul 9, rezultand tabelul 10 Tabela 7: Tabel C Num VarA 1 A1 3 A2 5 A3 Tabela 8: Tabel D Num VarA 2 B1 4 B2 Pas Variabile in noul tabel noile variabile Num VarA VarB primul set 1 A1 al doilea set 2 A1 B1 din nou primul set 3 A2 din nou al doilea set 4 A2 B2 Combinarea one-to-one este utila in cazurile in care observatiile sunt ordonate dupa un ID sau cheie unica si organizate in asa fel incat campurile celor doua tabele sa se suprapuna. Tabela 9: Pasii parcursi one-to-one Tabela 10: Tabel one2one Num VarA VarB 2 A1 B1 4 A2 B2 Concatenarea -tabelele sunt asezate unul dupa altul; noul tabel va contine toate variabilele din toate tabelele concatenate. Exemplu 47 : data concat; set C D; Rezultatul acestui pas este prezentat in tabelul 11. Se observa ca: variabila comuna celor doua tabele, num are acelasi tip in ambele tabele 48 daca variabilele cu acelasi nume au lungimi diferite, SAS atribuie in noul tabel lungimea primei variabile intalnite (in primul tabel in care apare) 49. data clinic.concat; set clinic.therapy1999 clinic.therapy2000; 47 tabelele de concatenat se enumera in aceeasi instructiune set concatenarea tabelelor se poate face si cu proc append Tabela 11: Tabel concat Num VarA VarB 1 A1 3 A2 5 A3 2 B1 4 B2 48 este obligatoriu pentru toate variabilele care au acelasi nume in toate tabelele, altfel se emite eroare 49 si procedeaza la fel cu etichetele, formate sau informate, adica ia prima varianta intalnita in primul tabel Exemplu

71 71 Intercalarea Daca in pasul data in care se face concatenare se foloseste o instructiune by atunci va rezulta o intercalare bazata pe variabilele din lista by. Forma generala a pasului data pentru intercalare este: DATA output-sas-data-set; RUN; SET SAS-data-set-1 SAS-data-set-2; BY variable(s); unde variable(s) indica variabilele dupa care sa se faca intercalarea. Exemplu: data interlv; set c d; by num; Din tabelele C si D (tab.??) va rezulta tabelul interlv (tab. 14). data clinic.interlv; Match-merging set clinic.therapy1999 clinic.therapy2000; by month; - se combina mai multe tabele pe baza unei variabile comune; se foloseste instructiunea merge 50. Forma generala: DATA output-sas-data-set; RUN; MERGE SAS-data-set-1 SAS-data-set-2; BY <DESCENDING> variable(s); TOATE TABELELE DIN LISTA SET TREBUIE SA FIE ORDONATE DUPA VARIABILELE DIN LISTA BY Tabela 12: Tabel C Num Var 1 C1 2 C2 2 C3 3 C4 Tabela 13: Tabel D Num VarA 2 D1 3 D2 3 D3 Tabela 14: Tabel concat Num VarA 1 C1 2 C2 2 C3 2 D1 3 C4 3 D2 3 D3 Alt exemplu 50 in loc de set unde: output-sas-data-set denumeste tabelul nou creat de pasul data; SAS-data-set-1,2 - tabelele SAS din care se citesc datele; variable(s) in by specifica una sau mai multe variabile dupa care se unesc observatiile 51 ; tabelele din instructiunea by trebuie sa fie sortate inainte de executarea pasului data; 51 <descending> indica faptul ca datele sursa sunt ordonate in ordine descrescatoare dupa variabila care urmeaza; daca in lista by sunt mai multe variabile, <descending> are efect doar asupra variabilei care urmeaza imediat dupa ea.

72 72 variabilele din by trebuie sa aiba acelasi tip in toate tabelele unite de instructiunea merge; descending nu se poate folosi cu tabele indexate pentru ca acestea sunt intotdeauna ordonate crescator. Exemplu: Fie tabelele A si B (tab.??). Dupa rularea codului: data merged; merge a b; by num; se obtine tabelul 17. In tabelul rezultat vor aparea toate observatiile din toate tabelele sursa 52. Daca unul din tabelele de intrare nu contine observatii pentru o anumita valoare a variabilei by in tabelul rezultat acestea se completeaza cu missing. Tabela 15: Tabel A Num VarA 1 A1 2 A2 3 A3 Tabela 16: Tabel B Num VarB 1 B1 2 B2 4 B3 Tabela 17: Tabel merged Num VarA VarB 1 A1 B1 2 A2 B2 3 A3 4 B3 52 se pot adauga instructiuni si optiuni pentru selectarea observatiilor dorite Figura 1: Alt exemplu de match-merge proc sort data=clinic.demog; by id; proc print data=clinic.demog; Exemplu - datele sunt sortate in ordine crescatoare va afisa tabelul demog: Obs ID Age Sex Date 1 A m 05/22/75 2 A m 06/15/63 3 A f 08/17/72 4 A /27/69 5 A f 02/24/52 6 A m 11/11/57

73 73 proc sort data=clinic.visit; by id; proc print data=clinic.visit; va afisa tabelul visit: Obs ID Visit SysBP DiasBP Weight Date 1 A /05/98 2 A /13/98 3 A /04/98 4 A /14/98 5 A /12/98 6 A /21/98 7 A /30/98 8 A /27/98 9 A /11/98 10 A /16/98 11 A /22/98 iar unite cu merge: data clinic.merged; merge clinic.demog clinic.visit; by id; Rezulta: proc print data=clinic.merged; Obs ID Age Sex Date Visit SysBP DiasBP Weight 1 A m 11/05/ A m 10/13/ A m 07/04/ A m 04/14/ A f 08/12/ A f 08/21/ A /30/ A f 02/27/ A f 07/11/ A f 04/16/ A m 11/11/ A /22/ Date ordonate descrescator

74 74 proc sort data=clinic.demog; by descending id; proc sort data=clinic.visit; by descending id; data clinic.merged; merge clinic.demog clinic.visit; by descending id; proc print data=clinic.merged; cu rezultatul: Obs ID Age Sex Date Visit SysBP DiasBP Weight 1 A /22/ A m 11/11/ A f 02/27/ A f 07/11/ A f 04/16/ A /30/ A f 08/12/ A f 08/21/ A m 04/14/ A m 11/05/ A m 10/13/ A m 07/04/ Procesarea match-merge In faza de compilare se construieste PDV (structura noului tabel). Variabilele care au acelasi nume in tabelele sursa vor aparea o singura data in noul tabel; lungimea lor e data de prima aparitie din lista merge; valoarea va fi din ultimul tabel citit. Figura 2 ilustreaza procesul de construire a PDV. Dupa crearea PDV, in faza aceasta se atribuie cate un pointer de urmarire fiecarul tabel sursa. Figura 2: Construirea PDV pentru match-merge Faza de executie In faza de executie SAS verifica secvential daca observatiile curente din tabelele sursa au aceeasi valoare pentru variabilele din by: daca DA, atunci observatiile sunt scrise in PDV in ordinea in care apar tabelele pe lista merge. Valorile din variabilele cu acelasi

75 75 nume sunt scrise una peste alta intr-o singura variabila. SAS scrie observatia combinata in tabelul nou si retine valoarile in PDV pana cand valoarea din by se schimba in toate tabelele. daca NU, SAS determina care valori sunt primele si scrie observatia respectiva in PDV dupa care continutul PDV se scrie in tabel. Cand se schimba valoarea din by in toate tabelele sursa, PDV e reinitializat cu missing. Tratarea observatiilor fara pereche si a valorilor missing daca o observatie are valori missing acestea sunt copiate in noul tabel. Observatiile care au valori missing pentru variabilele din lista by vor aparea la inceputul tabelului. daca o observatie nu are valoare a variabilei by distincta de toate celalalte, in tabelul rezultat vor fi trecute valori missing pentru valorile lipsa. Re-denumirea variabilelor - cand nu vrem sa suprapunem variabilele cu acelasi nume din tabele diferite. Forma generala: unde (RENAME=(old-variable-name=new-variable-name)) optiunea rename= in paranteze urmeaza numele tabelului SAS sursa care contine variabilele care trebuier re-denumite; old-variable-name specifica variabila care trebuie redenumita 53 ; new-variable-name specifica noul nume al variabilei 54. Exemplu: 53 se pot redenumi mai multe variabile intr-o optiune rename= 54 rename= se poate folosi si in instructiunea set data clinic.merged; merge clinic.demog(rename=(date=birthdate)) clinic.visit(rename=(date=visitdate)); by id; proc print data=clinic.merged;

1.3. OPERAŢII CU NUMERE NEZECIMALE

1.3. OPERAŢII CU NUMERE NEZECIMALE 1.3. OPERAŢII CU NUMERE NEZECIMALE 1.3.1 OPERAŢII CU NUMERE BINARE A. ADUNAREA NUMERELOR BINARE Reguli de bază: 0 + 0 = 0 transport 0 0 + 1 = 1 transport 0 1 + 0 = 1 transport 0 1 + 1 = 0 transport 1 Pentru

More information

O V E R V I E W. This study suggests grouping of numbers that do not divide the number

O V E R V I E W. This study suggests grouping of numbers that do not divide the number MSCN(2010) : 11A99 Author : Barar Stelian Liviu Adress : Israel e-mail : stelibarar@yahoo.com O V E R V I E W This study suggests grouping of numbers that do not divide the number 3 and/or 5 in eight collumns.

More information

Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. - Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1

Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. - Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1 Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. Scopul lucrarii: Scopul acestei lucrari este de a invata si intelege instructiunile de control logic, pe care, le vom folosi in realizarea unui

More information

Utilizarea limbajului SQL pentru cereri OLAP. Mihaela Muntean 2015

Utilizarea limbajului SQL pentru cereri OLAP. Mihaela Muntean 2015 Utilizarea limbajului SQL pentru cereri OLAP Mihaela Muntean 2015 Cuprins Implementarea operatiilor OLAP de baza in SQL -traditional: Rollup Slice Dice Pivotare SQL-2008 Optiunea ROLLUP Optiunea CUBE,

More information

UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor

UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor Obiective urmărite: La sfârşitul parcurgerii acestei UI, studenţii vor 1.1 cunoaște conceptul de eficienta a unui algoritm vor cunoaste si inţelege modalitatile

More information

Pentru clasa a X-a Ştiinţele naturii-sem II

Pentru clasa a X-a Ştiinţele naturii-sem II Pentru clasa a X-a Ştiinţele naturii-sem II Reprezentarea algoritmilor. Pseudocod. Principiile programării structurate. Structuri de bază: structura liniară structura alternativă structura repetitivă Algoritmi

More information

Liste. Stive. Cozi SD 2017/2018

Liste. Stive. Cozi SD 2017/2018 Liste. Stive. Cozi SD 2017/2018 Conţinut Tipurile abstracte LLin, LLinOrd, Stiva, Coada Liste liniare Implementarea cu tablouri Implementarea cu liste simplu înlănțuite Liste liniare ordonate Stive Cozi

More information

Sisteme cu logica fuzzy

Sisteme cu logica fuzzy Sisteme cu logica fuzzy 1/15 Sisteme cu logica fuzzy Mamdani Fie un sistem cu logică fuzzy Mamdani două intrări x şi y ieşire z x y SLF Structura z 2/15 Sisteme cu logica fuzzy Mamdani Baza de reguli R

More information

ȘIRURI (TABLOURI UNIDIMENSIONALE)

ȘIRURI (TABLOURI UNIDIMENSIONALE) Problema 1 Enunț ȘIRURI (TABLOURI UNIDIMENSIONALE) Se citesc mai multe numere naturale, până la introducerea numărului 0 şi se memorează într-un şir. Să se găsească toate numerele perfecte din şir. Un

More information

Soluţii juniori., unde 1, 2

Soluţii juniori., unde 1, 2 Soluţii juniori Problema 1 Se consideră suma S x1x x3x4... x015 x016 Este posibil să avem S 016? Răspuns: Da., unde 1,,..., 016 3, 3 Termenii sumei sunt de forma 3 3 1, x x x. 3 5 6 sau Cristian Lazăr

More information

Teorema Reziduurilor şi Bucuria Integralelor Reale Prezentare de Alexandru Negrescu

Teorema Reziduurilor şi Bucuria Integralelor Reale Prezentare de Alexandru Negrescu Teorema Reiduurilor şi Bucuria Integralelor Reale Preentare de Alexandru Negrescu Integrale cu funcţii raţionale ce depind de sint şi cost u notaţia e it, avem: cost sint i ( + ( dt d i, iar integrarea

More information

Divizibilitate în mulțimea numerelor naturale/întregi

Divizibilitate în mulțimea numerelor naturale/întregi Divizibilitate în mulțimea numerelor naturale/întregi Teorema îmărţirii cu rest în mulțimea numerelor naturale Fie a, b, b 0. Atunci există q, r astfel încât a=bq+r, cu 0 r < b. În lus, q şi r sunt unic

More information

Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava)

Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava) Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava) Reactorul cu curgere ideala Toate particulele se deplaseaza intr-o directie de-a lungul reactorului, precum

More information

Ordin. pentru aprobarea structurii informaţiilor înscrise pe cardul naţional de asigurări sociale de sănătate

Ordin. pentru aprobarea structurii informaţiilor înscrise pe cardul naţional de asigurări sociale de sănătate CASA NATIONALA DE ASIGURARI DE SANATATE Ordin pentru aprobarea structurii informaţiilor înscrise pe cardul naţional de asigurări sociale de sănătate Având în vedere: Act publicat in Monitorul Oficial al

More information

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II)

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II) Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II) Metode multipas Prof.dr.ing. Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică Suport didactic pentru disciplina

More information

Legi de distribuţie (principalele distribuţii de probabilitate) Tudor Drugan

Legi de distribuţie (principalele distribuţii de probabilitate) Tudor Drugan Legi de distribuţie (principalele distribuţii de probabilitate) Tudor Drugan Introducere In general distribuţiile variabilelor aleatoare definite pe o populaţie, care face obiectul unui studiu, nu se cunosc.

More information

ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN 2

ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN 2 ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN ABSTRACT This paper has been updated and completed thanks to suggestions and critics coming from Dr. Mike Hirschhorn,

More information

Arhitectura sistemelor de calcul

Arhitectura sistemelor de calcul Arhitectura sistemelor de calcul - Prelegerea 1 - Evoluția sistemelor de calcul Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Istoricul evolutiei calculatoarelor

More information

Inteligenta Artificiala

Inteligenta Artificiala Inteligenta Artificiala Universitatea Politehnica Bucuresti Anul universitar 2010-2011 Adina Magda Florea http://turing.cs.pub.ro/ia_10 si curs.cs.pub.ro 1 Curs nr. 4 Cautare cu actiuni nedeterministe

More information

Cristalul cu N atomi = un sistem de N oscilatori de amplitudini mici;

Cristalul cu N atomi = un sistem de N oscilatori de amplitudini mici; Curs 8 Caldura specifica a retelei Cristalul cu N atomi = un sistem de N oscilatori de amplitudini mici; pentru tratarea cuantica, se inlocuieste tratamentul clasic al oscilatorilor cuplati, cu cel cuantic

More information

Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea. Ecuatii de gradul al doilea

Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea. Ecuatii de gradul al doilea Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea Ecuatia de forma Ecuatii de gradul al doilea a + b + c = 0, (1) unde a, b, c R, a 0, - variabila, se numeste ecuatie de gradul

More information

PRELUCRARI PE IMAGINI BINARE (ALB/NEGRU)

PRELUCRARI PE IMAGINI BINARE (ALB/NEGRU) PRELUCRRI PE IMGINI BINRE (LB/NEGRU) Imagine binara? 2 nuante: alb ( 0 ) pixelii de fond ( I(x,y)= 255 pt. imagini indexate cu 8 biti/pixel ) negru ( 1 ) pixelii apartinand obiectelor ( I(x,y)= 0 pt. imagini

More information

Programarea Dinamica. (si alte chestii adiacente) Andrei Olariu

Programarea Dinamica. (si alte chestii adiacente) Andrei Olariu Programarea Dinamica (si alte chestii adiacente) Andrei Olariu andrei@olariu.org Despre mine - Absolvent FMI UniBuc - Doctorand in prelucrarea limbajului natural, in special in mediul online (Twitter)

More information

Subiecte geometrie licenta matematica-informatica 4 ani

Subiecte geometrie licenta matematica-informatica 4 ani Class: Date: Subiecte geometrie licenta matematica-informatica 4 ani Multiple Choice Identify the letter of the choice that best completes the statement or answers the question. 1. Complementara unui subspatiu

More information

Cercet¼ari operaţionale

Cercet¼ari operaţionale Cercet¼ari operaţionale B¼arb¼acioru Iuliana Carmen CURSUL 9 Cursul 9 Cuprins Programare liniar¼a 5.1 Modelul matematic al unei probleme de programare liniar¼a.................... 5. Forme de prezentare

More information

Barem de notare clasa a V-a

Barem de notare clasa a V-a Barem de notare clasa a V-a Problema1. Determinați mulțimile A și B, formate din numere naturale, știind că îndeplinesc simultan condițiile: a) A B,5,6 ; b) B A 0,7 ; c) card AB 3; d) suma elementelor

More information

METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal

METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal Titulari curs: Florin Pop, George-Pantelimon Popescu Responsabil

More information

Sisteme de Recunoastere a Formelor Lab 12 Clasificare cu Support Vector Machine

Sisteme de Recunoastere a Formelor Lab 12 Clasificare cu Support Vector Machine Sisteme de Recunoastere a Formelor Lab 12 Clasificare cu Support Vector Machine 1. Obiective In aceasta lucrare se va implementa clasificatorul SVM liniar si se va studia mecanismele de clasificare bazate

More information

array a[0..n-1] a[0] = v0,..., a[n-1] = vn-1

array a[0..n-1] a[0] = v0,..., a[n-1] = vn-1 Curs 5 - Agenda sortare interna buble sort sortare prin insertie sortare pri selectie naiva sistematica ( heap sort ) sortare prin interclasare ( merge sort ) sortare rapida ( quick sort ) cautare in liste

More information

Gradul de comutativitate al grupurilor finite 1

Gradul de comutativitate al grupurilor finite 1 Gradul de comutativitate al grupurilor finite Marius TĂRNĂUCEANU Abstract The commutativity degree of a group is one of the most important probabilistic aspects of finite group theory In this survey we

More information

SIMULAREA DECIZIEI FINANCIARE

SIMULAREA DECIZIEI FINANCIARE SIMULAREA DECIZIEI FINANCIARE Conf. univ. dr. Nicolae BÂRSAN-PIPU T5.1 TEMA 5 DISTRIBUŢII DISCRETE T5. Cuprins T5.3 5.1 Variabile aleatoare discrete 5. Distribuţia de probabilitate a unei variabile aleatoare

More information

2.1-PORNIREA, REPORNIREA SI OPRIREA CALCULATORULUI 2.2.-VIZUALIZAREA INFORMAŢIILOR DESPRE RESURSELE HARDWARE SI SOFTWARE

2.1-PORNIREA, REPORNIREA SI OPRIREA CALCULATORULUI 2.2.-VIZUALIZAREA INFORMAŢIILOR DESPRE RESURSELE HARDWARE SI SOFTWARE 2.1-PORNIREA, REPORNIREA SI OPRIREA CALCULATORULUI 2.2.-VIZUALIZAREA INFORMAŢIILOR DESPRE RESURSELE HARDWARE SI SOFTWARE 2.3.-DESCRIEREA ŞI PERSONALIZAREA INTERFEŢEI SISTEMULUI DE OPERARE DESCRIEREA SI

More information

LIGHTNING MVP System

LIGHTNING MVP System LIGHTNING MVP System Lightning MVP System Control (HACCP+SSOP) Swab-uri pentru lichide si pentru Suprafete Accesorii ph Temperatura Condutivitate Monitorizare ATP Prin Bioluminescenta Cel mai complet si

More information

FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII

FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII DIDACTICA MATHEMATICA, Vol. 34), pp. 53 67 FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII Eugenia Duca, Emilia Copaciu şi Dorel I. Duca Abstract. In this paper are presented the Wallis, Stirling, Gauss

More information

Counties of Romania List

Counties of Romania List O P A Romanian PSK Award eria de diplome Romanian PSK Award a fost conceputa de clubul European de PSK (EPC) la data de 22 mai 009. Scopul fiind de a stimula activitatea PSK cu statii de radioamatori din

More information

Logică și structuri discrete. Marius Minea 25 septembrie 2017

Logică și structuri discrete. Marius Minea   25 septembrie 2017 Logică și structuri discrete Funcții Marius Minea marius@cs.upt.ro http://cs.upt.ro/~marius/curs/lsd/ 25 septembrie 2017 Ce cuprinde domeniul informaticii? Imagine: https://hkn.eecs.berkeley.edu/courseguides

More information

COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS

COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS 74 COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS Codrin PRECUPANU 3, Dan PRECUPANU,, Ștefan OPREA Correspondent Member of Technical Sciences Academy Gh. Asachi Technical

More information

Sisteme cu logica fuzzy cu mai multe intrari (MISO)

Sisteme cu logica fuzzy cu mai multe intrari (MISO) Sisteme cu logica fuzzy cu mai multe intrari (MISO) Structura unui sistem cu logică fuzzy MISO Structura unui SLF cu 2 intrari Fie un sistem cu logică fuzzy Mamdani două intrări x şi y ieşire z x y SLF

More information

Reactoare chimice cu curgere piston (ideala) (Plug Flow Reactor PFR) cu amestecare completa (Mixed Flow Reactor MFR) de tip batch (autoclava)

Reactoare chimice cu curgere piston (ideala) (Plug Flow Reactor PFR) cu amestecare completa (Mixed Flow Reactor MFR) de tip batch (autoclava) Reactoare chimice cu curgere piston (ideala) (Plug Flow Reactor PFR) cu amestecare completa (Mied Flow Reactor MFR) de tip batch (autoclava) Reactorul cu curgere ideala Toate particulele se deplaseaza

More information

GENERATOARE DE SEMNAL DIGITALE

GENERATOARE DE SEMNAL DIGITALE Technical University of Iasi, Romania Faculty of Electronics and Telecommunications Signals, Circuits and Systems laboratory Prof. Victor Grigoras Cuprins Clasificarea generatoarelor Filtre reursive la

More information

A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π

A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π U.P.B. Sci. Bull., Series A, Vol. 68, No., 6 A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π S.C. ŞTEFĂNESCU Algoritmul Monte Carlo clasic A1 estimeazează valoarea numărului π bazându-se

More information

Metode clasice. Camelia Chira.

Metode clasice. Camelia Chira. Metode clasice Camelia Chira http://users.utcluj.ro/~cchira camelia.chira@cs.utcluj.ro Am vazut deja ca... Probleme de optimizare pot fi foarte complexe SAT, TSP, NLP, etc Spatiul de cautare Clase de complexitate

More information

Despre AGC cuasigrupuri V. Izbaș

Despre AGC cuasigrupuri V. Izbaș Despre AGC cuasigrupuri V Izbaș 1 Introducere Se ştie că grupurile au apărut în matematică ca grupuri de automorfisme Rolul automorfismelor este remarcabil şi bine cunoscut La studierea diverselor structuri

More information

Definiţie. Pr(X a) - probabilitatea ca X să ia valoarea a ; Pr(a X b) - probabilitatea ca X să ia o valoare în intervalul a,b.

Definiţie. Pr(X a) - probabilitatea ca X să ia valoarea a ; Pr(a X b) - probabilitatea ca X să ia o valoare în intervalul a,b. Variabile aleatoare Definiţie Se numeşte variabilă aleatoare pe un spaţiu fundamental E şi se notează prin X, o funcţie definită pe E cu valori în mulţimea numerelor reale. Unei variabile aleatoare X i

More information

Prelegerea 7. Sistemul de criptare AES. 7.1 Istoric

Prelegerea 7. Sistemul de criptare AES. 7.1 Istoric Prelegerea 7 Sistemul de criptare AES 7.1 Istoric La sfârşitul anilor 90 se decide înlocuirea sistemului de criptare DES. Motivele sunt multiple, dar menţionăm numai două: În iulie 1998 sistemul DES pe

More information

Proiectarea cu Micro-Procesoare

Proiectarea cu Micro-Procesoare Universitatea Tehnică din Cluj-Napoca Departamentul Calculatoare Proiectarea cu Micro-Procesoare Lector: Mihai Negru An 3 Calculatoare și Tehnologia Informației Seria B Curs 10: Intel 8086 I/O și întreruperi

More information

4/68. Mini-comutatoare cu came. Prezentare generalã a sistemului. Întreruptoare Pornit-Oprit TM. Comutatoare de comandã TM.

4/68. Mini-comutatoare cu came. Prezentare generalã a sistemului. Întreruptoare Pornit-Oprit TM. Comutatoare de comandã TM. / Mini-comutatoare cu came Prezentare generalã a sistemului Întreruptoare Pornit-Oprit Comutatoare de comandã HA ND AU TO HPL-de-DE O Mini-comutatoare cu came / Montaj pe ușã (.../E) Frontal IP Montaj

More information

Modelarea traficului in cadrul retelelor de radiotelefonie mobila

Modelarea traficului in cadrul retelelor de radiotelefonie mobila Modelarea traficului in cadrul retelelor de radiotelefonie mobila Alocarea resurselor radio in cadrul retelelor GSM/GPRS este importanta intrucat acestea sunt proiectate sa transmita trafic mixt: oce ate:

More information

Manual Limba Germana

Manual Limba Germana Manual Limba Germana If you are searched for the book Manual limba germana in pdf format, in that case you come on to loyal site. We furnish utter variation of this ebook in txt, doc, epub, DjVu, PDF formats.

More information

Matematici speciale Variabile aleatoare discrete

Matematici speciale Variabile aleatoare discrete Matematici speciale Variabile aleatoare discrete Aprilie 208 ii Expose yourself to as much randomness as possible. Ben Casnocha 9 Variabile aleatoare discrete Texas Holdem Poker: In Texas Hold em Poker

More information

Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur

Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur Andi Gabriel BROJBEANU Abstract. A method for establishing certain inequalities is proposed and applied. It is based upon inequalities

More information

Avem 6 tipuri de simboluri in logica predicatelor:

Avem 6 tipuri de simboluri in logica predicatelor: Semantica Avem 6 tipuri de simboluri in logica predicatelor: Predicate: p, q, r,, p1, q2 etc. Constante: a, b, c,, z, a1, b4,, ion, mihai, labus etc. Variabile: x, y, z, x1, y1, z4 etc. Conective:,,,,

More information

COMPARATIVE STUDY OF STRUCTURAL ANALYSIS APPLIED TO AGRICULTURAL MACHINES BODIES AND ACCOMPLISHED WITH SOLID WORKS AND AUTODESK INVENTOR PROGRAMS

COMPARATIVE STUDY OF STRUCTURAL ANALYSIS APPLIED TO AGRICULTURAL MACHINES BODIES AND ACCOMPLISHED WITH SOLID WORKS AND AUTODESK INVENTOR PROGRAMS COMPARATIVE STUDY OF STRUCTURAL ANALYSIS APPLIED TO AGRICULTURAL MACHINES BODIES AND ACCOMPLISHED WITH SOLID WORKS AND AUTODESK INVENTOR PROGRAMS / STUDIU COMPARATIV DE ANALIZA STRUCTURALA APLICATA LA

More information

Graduări pe algebre de matrice

Graduări pe algebre de matrice UNIVERSITATEA DIN BUCUREŞTI FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ ŞCOALA DOCTORALĂ DE MATEMATICĂ Graduări pe algebre de matrice TEZĂ DE DOCTORAT REZUMAT Coordonator ştiinţific: Prof.univ.dr. Sorin Dăscălescu

More information

Laborator 3. Backtracking iterativ

Laborator 3. Backtracking iterativ Programare Delphi Laborator 3 Backtracking iterativ Metoda backtracking este o strategie generală de căutare din aproape în aproape a unei soluţii dintr-o mulţime finită de posibilităţi. Problema trebuie

More information

Proiectarea Algoritmilor

Proiectarea Algoritmilor Proiectarea Algoritmilor Ștefan Trăușan-Matu stefan.trausan@cs.pub.ro Obiectivele cursului Discutarea relaţiei dintre caracteristicile problemelor, modul de rezolvare şi calitatea soluţiilor. Obiectivele

More information

SISTEME DE OPERARE (SO) CURS 3. Lect. Univ. Dr. Mihai Stancu. Gestiunea utilizatorilor

SISTEME DE OPERARE (SO) CURS 3. Lect. Univ. Dr. Mihai Stancu. Gestiunea utilizatorilor SISTEME DE OPERARE (SO) CURS 3 Lect. Univ. Dr. Mihai Stancu Gestiunea utilizatorilor S u p o r t d e c u r s Suport (Introducere în sisteme de operare) Secțiunea 3.1 Secțiunea 4.5 Secțiunea 10.2.3 Secțiunea

More information

APLICAŢII ALE FORMULELOR LUI NEWTON PENTRU POLINOAME SIMETRICE

APLICAŢII ALE FORMULELOR LUI NEWTON PENTRU POLINOAME SIMETRICE DIDACTICA MATHEMATICA, Vol. 33(2015), pp. 27 37 APLICAŢII ALE FORMULELOR LUI NEWTON PENTRU POLINOAME SIMETRICE Cristina-Aida Coman Abstract. In this paper we present some applications of Newton s formulae

More information

STANDARDIZAREA DATELOR SPATIALE

STANDARDIZAREA DATELOR SPATIALE UNIVERSITATEA DE VEST DIN TIMISOARA Şcoala Masterală a Facultăţii de Chimie, Biologie şi Geografie Departamentul de Geografie STANDARDIZAREA DATELOR SPATIALE Master Sisteme informatice geografice Dr. Cristina

More information

Habilitation Thesis. Periodic solutions of differential systems: existence, stability and bifurcations

Habilitation Thesis. Periodic solutions of differential systems: existence, stability and bifurcations UNIVERSITATEA BABEŞ BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Habilitation Thesis Mathematics presented by Adriana Buică Periodic solutions of differential systems: existence, stability

More information

Tablouri bidimensionale(matrici)

Tablouri bidimensionale(matrici) Tablouri bidimensionale(matrici) ianta în Pascal Problema 1: Secvență de matrici Enunț Scrieţi un program care citeşte de la tastatură două numere naturale n și m ( 2

More information

Alte rezultate din teoria codurilor

Alte rezultate din teoria codurilor Prelegerea 20 Alte rezultate din teoria codurilor 20.1 Coduri aritmetice Construcţiile oferite de teoria codurilor pot fi utilizate şi în alte domenii decât în cele clasice, de transmitere şi recepţie

More information

Utilizarea claselor de echivalenta in analiza asistata de calculator a sistemelor cu evenimente discrete

Utilizarea claselor de echivalenta in analiza asistata de calculator a sistemelor cu evenimente discrete 72 Utilizarea claselor de echivalenta in analiza asistata de calculator a sistemelor cu evenimente discrete Conf.dr. Alexandru TERTISCO, ing. Alexandru BOICEA Facultatea de Automatica si Calculatoare,

More information

AN APPROACH TO THE NONLINEAR LOCAL PROBLEMS IN MECHANICAL STRUCTURES

AN APPROACH TO THE NONLINEAR LOCAL PROBLEMS IN MECHANICAL STRUCTURES U.P.B. Sci. Bull., Series D, Vol. 74, Iss. 3, 2012 ISSN 1454-2358 AN APPROACH TO THE NONLINEAR LOCAL PROBLEMS IN MECHANICAL STRUCTURES Marius-Alexandru GROZEA 1, Anton HADĂR 2 Acest articol prezintă o

More information

Siguranţa structurilor la acţiuni seismice şi climatice

Siguranţa structurilor la acţiuni seismice şi climatice Universitatea Tehnică de Construcţii Bucureşti Facultatea de Construcţii Civile, Industriale şi Agricole Catedra de Constructii de Beton Armat Grinda b.a., 5 ani expunere, VQ,an =,6 6. Indice de fiabilitate,

More information

CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1

CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1 CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1 Structura Ce este programarea dinamică? Aplicație: problema discretă a rucsacului Funcții de memorie (memoizare) Aplicație: înmulțirea optimală

More information

Agricultural Engineering

Agricultural Engineering THE DETERMINATION OF QUALITY CHARACTERISTICS FOR THE WORKING PROCESS OF INDENTED CYLINDER SEPARATORS AS FUNCTIONS OF PROCESS PARAMETERS OF THESE EQUIPMENTS / DETERMINAREA CARACTERISTICILOR CALITATIVE ALE

More information

Testarea ipotezelor statistice

Testarea ipotezelor statistice Testarea ipotezelor statistice Formularea de ipoteze statistice este una din cele mai importante aspecte ale cercetarii stiintifice. O ipoteza noua trebuie verificata! Pentru verificarea unor ipoteze statistice

More information

INEGALITĂŢI DE TIP HARNACK ŞI SOLUŢII POZITIVE MULTIPLE PENTRU PROBLEME NELINIARE

INEGALITĂŢI DE TIP HARNACK ŞI SOLUŢII POZITIVE MULTIPLE PENTRU PROBLEME NELINIARE UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA ŞCOALA DOCTORALĂ DE MATEMATICĂ ŞI INFORMATICĂ INEGALITĂŢI DE TIP HARNACK ŞI SOLUŢII POZITIVE MULTIPLE PENTRU PROBLEME NELINIARE Rezumatul tezei de doctorat Doctorand:

More information

Curs 6. Discrete Event Simulation

Curs 6. Discrete Event Simulation Curs 6 Discrete Event Simulation C6 ~ 12.04.2017 1/43 In discrete-event simulation, the operation of a system is represented as a chronological sequence of events. Each event occurs at an instant in time

More information

SOI prin smart-cut. Caracterizarea TEM-HRTEM a defectelor structuale induse in Si prin hidrogenare in plasma.

SOI prin smart-cut. Caracterizarea TEM-HRTEM a defectelor structuale induse in Si prin hidrogenare in plasma. SOI prin smart-cut. Caracterizarea TEM-HRTEM a defectelor structuale induse in Si prin hidrogenare in plasma. Dr. Corneliu GHICA, Dr. Leona NISTOR Proiect IDEI, Contract Nr. 233/2007 1. C. Ghica, L. C.

More information

ANOVA IN THE EDUCATIONAL PROCESS

ANOVA IN THE EDUCATIONAL PROCESS U.P.B. Sci. Bull., Series C, Vol. 70, No. 3, 008 ISSN 454-34 ANOVA IN THE EDUCATIONAL PROCESS Mihaela Florentina MATEI Analiza dispersiei, ANOVA, reprezintă una din metodele statistice, dintre cele mai

More information

Calcul Numeric. Cursul Anca Ignat

Calcul Numeric. Cursul Anca Ignat Calcul Numeric Cursul 1 2011-2012 Anca Ignat ancai@infoiasi.ro, olariu@info.uaic.ro cn@fenrir.infoiasi.ro pentru temele de laborator http://www.infoiasi.ro/~ancai/cn/ Consultaţii: prin e-mail la adresa

More information

Teoria probabilit¼aţilor şi statistic¼a matematic¼a

Teoria probabilit¼aţilor şi statistic¼a matematic¼a Teoria probabilit¼aţilor şi statistic¼a matematic¼a B¼arb¼acioru Iuliaa Carme CURSUL 7 Cursul 7 2 Cupris 1 Legea umerelor mari 5 1.1 Geeralit¼aţi............................... 5 1.2 Iegalitatea lui Cebîşev........................

More information

Rezultate în Teoria Punctului Fix şi Procese Iterative cu Aplicaţii

Rezultate în Teoria Punctului Fix şi Procese Iterative cu Aplicaţii Rezultate în Teoria Punctului Fix şi Procese Iterative cu Aplicaţii Asist. drd. Adrian Sorinel Ghiura Departamentul de Matematică & Informatică Universitatea Politehnica din Bucureşti REZUMATUL TEZEI DE

More information

SpatialHadoop. Tema. U iversitatea Politeh ica Bucureşti Facultatea Electro ică,teleco u icaţii şi Teh ologia I for aţiei. Master IISC

SpatialHadoop. Tema. U iversitatea Politeh ica Bucureşti Facultatea Electro ică,teleco u icaţii şi Teh ologia I for aţiei. Master IISC U iversitatea Politeh ica Bucureşti Facultatea Electro ică,teleco u icaţii şi Teh ologia I for aţiei Master IISC 2015-2016 Disciplina Sisteme de operare avansate Tema SpatialHadoop Coordonator: prof. dr.

More information

INCLUZIUNI OPERATORIALE PRIN TEHNICA PUNCTULUI FIX ÎN SPAŢII METRICE VECTORIALE

INCLUZIUNI OPERATORIALE PRIN TEHNICA PUNCTULUI FIX ÎN SPAŢII METRICE VECTORIALE UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ INCLUZIUNI OPERATORIALE PRIN TEHNICA PUNCTULUI FIX ÎN SPAŢII METRICE VECTORIALE REZUMATUL TEZEI DE DOCTORAT Coordonator ştiinţific

More information

ALGORITMI DE OPTIMIZARE IN INGINERIE ELECTRICA. Sef lucrari ing. Alin-Iulian DOLAN

ALGORITMI DE OPTIMIZARE IN INGINERIE ELECTRICA. Sef lucrari ing. Alin-Iulian DOLAN ALGORITMI DE OPTIMIZARE IN INGINERIE ELECTRICA Sef lucrari ing. Alin-Iulian DOLAN PROBLEME DE OPTIMIZARE OPTIMIZAREA gasirea celei mai bune solutii ale unei probleme, constand in minimizarea (maximizarea)

More information

Obiecte matematice: Editorul de ecuaţii OpenOffice.org

Obiecte matematice: Editorul de ecuaţii OpenOffice.org Obiecte matematice: Editorul de ecuaţii OpenOffice.org Titlu: Obiecte matematice: Editorul de ecuaţii OpenOffice.org Versiune: 2.0 Prima ediţie: Ianuarie 2005 Prima ediţie în engleză: Ianuarie 2005 Prima

More information

CONSILIERE PENTRU CARIERĂ, PRACTICĂ PENTRU SUCCES!

CONSILIERE PENTRU CARIERĂ, PRACTICĂ PENTRU SUCCES! Proiect cofinanțat din Programul Operațional Sectorial pentru Dezvoltarea Resurselor Umane 2007-2013 Investește in Oameni! CONSILIERE PENTRU CARIERĂ, PRACTICĂ PENTRU SUCCES! WWW.3DCADVEGRA.COM Investeşte

More information

Controlul predictiv bazat pe modele intare-stare-iesire. Cuprins. 2. Modele intrare-stare-iesire :01

Controlul predictiv bazat pe modele intare-stare-iesire. Cuprins. 2. Modele intrare-stare-iesire :01 Modelare si control predictiv - proiect - Controlul predictiv bazat pe modele intrare-stare-iesire Asist. ing. Constantin Florin Caruntu 23:01 Cuprins Controlul predictiv bazat pe modele intare-stare-iesire

More information

GIDD PENTRU CALCULUL CONSUMULUI DE CA.LOURA AL CONSTRUCTIILOR DOTATE CU ' A SISTEME PASIVE DE INCALZIRE SO LARA INDICATIV GP

GIDD PENTRU CALCULUL CONSUMULUI DE CA.LOURA AL CONSTRUCTIILOR DOTATE CU ' A SISTEME PASIVE DE INCALZIRE SO LARA INDICATIV GP , GIDD PENTRU CALCULUL CONSUMULUI DE CA.LOURA AL CONSTRUCTIILOR DOTATE CU ' A SISTEME PASIVE DE INCALZIRE SO LARA INDICATIV GP 017-96 95 Ghid pentru calculul consumului de caldura al cladirilor dotate

More information

Teoreme de compresie-extensie de tip Krasnoselskii şi aplicaţii (Rezumatul tezei de doctorat)

Teoreme de compresie-extensie de tip Krasnoselskii şi aplicaţii (Rezumatul tezei de doctorat) Teoreme de compresie-extensie de tip Krasnoselskii şi aplicaţii (Rezumatul tezei de doctorat) Sorin Monel Budişan Coordonator ştiinţi c: Prof. dr. Radu Precup Cuprins Introducere 1 1 Generaliz¼ari ale

More information

Molegro Molecular Viewer (MMV) Program de vizualizare off-line a proteinelor si a interactiunii ligand - proteina

Molegro Molecular Viewer (MMV) Program de vizualizare off-line a proteinelor si a interactiunii ligand - proteina Molegro Molecular Viewer (MMV) Program de vizualizare off-line a proteinelor si a interactiunii ligand - proteina Molegro Molecular Viewer - aplicatie pentru studiul si analiza interactiunii dintre liganzi

More information

Acta Technica Napocensis: Civil Engineering & Architecture Vol. 54 No.1 (2011)

Acta Technica Napocensis: Civil Engineering & Architecture Vol. 54 No.1 (2011) 1 Technical University of Cluj-Napoca, Faculty of Civil Engineering. 15 C Daicoviciu Str., 400020, Cluj-Napoca, Romania Received 25 July 2011; Accepted 1 September 2011 The Generalised Beam Theory (GBT)

More information

CALITATEA VIEŢII ÎN ORAŞELE ROMÂNEŞTI ÎN CONTEXTUL REFORMEI STATULUI

CALITATEA VIEŢII ÎN ORAŞELE ROMÂNEŞTI ÎN CONTEXTUL REFORMEI STATULUI QUALITY OF LIFE IN ROMANIAN CITIES IN THE CONTEXT OF STATE REFORM CALITATEA VIEŢII ÎN ORAŞELE ROMÂNEŞTI ÎN CONTEXTUL REFORMEI STATULUI Cristina ALPOPI Associate Professor Ph.D., Administration and Public

More information

PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 25 mai 2015

PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 25 mai 2015 PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 5 mai 015 I. SUBSTITUŢIA TAIWANEZĂ 1. Fie a, b, c > 0 astfel încât a bc, b ca şi c ab. Determinaţi valoarea maximă a expresiei

More information

OPENPH - NUMERICAL PHYSICS LIBRARY

OPENPH - NUMERICAL PHYSICS LIBRARY U.P.B. Sci. Bull., Series A, Vol. 68, No. 1, 2006 OPENPH - NUMERICAL PHYSICS LIBRARY G. MILESCU, G. NOAJE, Fl. POP * Fizica numerică a căpătat o importanţă deosebită în ultimele decenii, eficienţa sa fiind

More information

PROTECTII PRIN RELEE. (2) _ Principii si particularitati ale principalelor protectii

PROTECTII PRIN RELEE. (2) _ Principii si particularitati ale principalelor protectii (2) _ Principii si particularitati ale principalelor protectii 1 Principii si particularitati Protectia de curent Defintie Conditie de actionare -protectia maximala de curent -protectia minimala de curent

More information

ASPECTS REGARDING NUMERICAL MODELING OF INDUCTIVE HEATING PROCESS FOR LOW VOLTAGE ELECTRICAL CABLES

ASPECTS REGARDING NUMERICAL MODELING OF INDUCTIVE HEATING PROCESS FOR LOW VOLTAGE ELECTRICAL CABLES U.P.B. Sci. Bull., Series C, Vol. 72, Iss. 3, 2010 ISSN 1454-234x ASPECTS REGARDING NUMERICAL MODELING OF INDUCTIVE HEATING PROCESS FOR LOW VOLTAGE ELECTRICAL CABLES Costel PĂUN 1 În această lucrare se

More information

Numere prime. O selecţie de probleme pentru gimnaziu

Numere prime. O selecţie de probleme pentru gimnaziu Numere prime O selecţie de probleme petru gimaziu Adria Zaoschi Colegiul Natioal "Costache Negruzzi" Iasi (Clasa a V-a) Determiați submulțimea B a mulțimii A 0,,,, 49, 50, formată di toate elemetele lui

More information

7. OPERATIILE ARITMETICE

7. OPERATIILE ARITMETICE 7. OPERATIILE ARITMETICE 1. Procesorul Aritmetic. Un procesor aritmetic reprezinta un dispozitiv capabil sa efectueze operatii simple sau complexe asupra unor operanzi furnizati in formate corespunzatoare.

More information

TEOREME DE PUNCT FIX PENTRU OPERATORI CE NU INVARIAZĂ DOMENIUL DE DEFINIŢIE ŞI

TEOREME DE PUNCT FIX PENTRU OPERATORI CE NU INVARIAZĂ DOMENIUL DE DEFINIŢIE ŞI Universitatea Babeş-Bolyai, Cluj-Napoca Facultatea de Matematică şi Informatică Tania Angelica Lazăr TEOREME DE PUNCT FIX PENTRU OPERATORI CE NU INVARIAZĂ DOMENIUL DE DEFINIŢIE ŞI APLICAŢII Coordonator

More information

Curs 5 ELEMENTE STRUCTURALE SOLICITATE LA RASUCIRE

Curs 5 ELEMENTE STRUCTURALE SOLICITATE LA RASUCIRE Curs 5 ELEENTE STRUCTURALE SOLICITATE LA RASUCIRE Rasucirea (torsiunea), ca stare de solicitare nu apare in mod independent, ci in combinatie cu alte solicitari (ex. incovoiere cu rasucire, compresiune

More information

A MATHEMATICAL COMPARISON BETWEEN SEVERAL SINGLE AUTHOR CORPORA

A MATHEMATICAL COMPARISON BETWEEN SEVERAL SINGLE AUTHOR CORPORA U.P.B. Sci. Bull., Series A, Vol. 74, Iss. 1, 2012 ISSN 1223-7027 A MATHEMATICAL COMPARISON BETWEEN SEVERAL SINGLE AUTHOR CORPORA Stefan CIUCĂ 1, Adriana VLAD 2, and Adrian MITREA 3 Lucrarea se focalizează

More information

Metode numerice de aproximare. a zerourilor unor operatori. şi de rezolvare a inegalităţilor variaţionale. cu aplicaţii

Metode numerice de aproximare. a zerourilor unor operatori. şi de rezolvare a inegalităţilor variaţionale. cu aplicaţii Facultatea de Matematică şi Informatică Universitatea Babeş-Bolyai Erika Nagy Metode numerice de aproximare a zerourilor unor operatori şi de rezolvare a inegalităţilor variaţionale cu aplicaţii Rezumatul

More information

2D AND 3D PROCESSING OF THE INTERDEPENDENCE BETWEEN THE COMFORT MAIN INDICATORS

2D AND 3D PROCESSING OF THE INTERDEPENDENCE BETWEEN THE COMFORT MAIN INDICATORS BULETINUL INSTITUTULUI POLITEHNIC DIN IAŞI Publicat de Universitatea Tehnică Gheorghe Asachi din Iaşi Tomul LVII (LXI), Fasc. 1, 2011 SecŃia TEXTILE. PIELĂRIE 2D AND 3D PROCESSING OF THE INTERDEPENDENCE

More information

Teoreme de Analiză Matematică - I (teorema Weierstrass-Bolzano) 1

Teoreme de Analiză Matematică - I (teorema Weierstrass-Bolzano) 1 Educaţia Matematică Vol. 3, Nr. 1-2 (2007), 79-84 Teoreme de Analiză Matematică - I (teorema Weierstrass-Bolzano) 1 Silviu Crăciunaş, Petrică Dicu, Mioara Boncuţ Abstract In this paper we propose a Weierstrass

More information

Mugur Acu OPERATORUL INTEGRAL LIBERA-PASCU ŞI PROPRIETĂŢILE ACESTUIA CU PRIVIRE LA FUNCŢIILE UNIFORM STELATE, CONVEXE, APROAPE CONVEXE ŞI

Mugur Acu OPERATORUL INTEGRAL LIBERA-PASCU ŞI PROPRIETĂŢILE ACESTUIA CU PRIVIRE LA FUNCŢIILE UNIFORM STELATE, CONVEXE, APROAPE CONVEXE ŞI Mugur Acu OPERATORUL INTEGRAL LIBERA-PASCU ŞI PROPRIETĂŢILE ACESTUIA CU PRIVIRE LA FUNCŢIILE UNIFORM STELATE, CONVEXE, APROAPE CONVEXE ŞI α-uniform CONVEXE Editura Universităţii Lucian Blaga din Sibiu

More information

Figura 7.12 Multiscopul: schema bloc simplificată a părţii specifice osciloscopului hibrid. U Y CS S/T-H ADC MD DAC TC

Figura 7.12 Multiscopul: schema bloc simplificată a părţii specifice osciloscopului hibrid. U Y CS S/T-H ADC MD DAC TC 7-7 7.3.3 OSCILOSCOPUL HIBRID CE GP-IB ADC Frecvenţmetru Fazmetru Generator de caractere X Y Z Elemente de comandă şi reglaj Figura 7.1 Multiscopul: schema bloc simplificată a părţii specifice osciloscopului

More information