Sunteți pe pagina 1din 14

Contents

II. Pachete software integrate – SAS ............................................................................................................ 1

II.1. SAS - Arhitectură, componente, caracteristici ................................................................................... 1


II.2. Introducere în limbajul de programare SAS....................................................................................... 3
II.3. Crearea seturilor de date SAS pornind de la fisiere externe.............................................................. 6
II.3.1. Importul datelor din fişiere text cu delimitatori ......................................................................... 6
II.3.2. Importul datelor din fişiere text cu coloane cu lăţime fixă ......................................................... 8
II.4. Definirea şi aplicarea de formate în secţiunile de date şi de proceduri ............................................ 9
II.5. Adăugarea de variabile la un set de date SAS .................................................................................. 11
II.5.1. Crearea şi utilizarea seturilor de date temporare ...................................................................... 12
II.5.2. Crearea şi utilizarea unui set de date permanent ....................................................................... 13

II. Pachete software integrate – SAS

II.1. SAS - Arhitectură, componente, caracteristici


SAS (acronimul de la Statistical Analysis System) a fost creat în anii 1970 de către SAS Institute
Inc ca un pachet software statistic. De-a lungul timpului, produsul a evoluat ajungând astăzi să
reprezinte unul dintre cele mai utilizate pachete software integrate, care oferă utilizatorilor facilităţi
precum:
1. introducerea, accesarea şi managementul datelor;
2. data mining (extragerea de informaţii din date);
3. realizarea de rapoarte şi grafice;
4. analize statistice;
5. planificarea afacerilor, prognoză şi suport de decizie;
6. cercetări operaţionale şi managementul proiectelor;
7. dezvoltarea de aplicaţii;
8. lucrul cu depozite de date (“data warehousing”);
9. lucrul independent de platforma hardware şi de locaţie.

În plus, SAS oferă soluţii de business şi soluţii software pentru domenii cum ar fi managementul
IT, managementul resurselor umane, management financiar, inteligenţa afacerii (“business
intelligence”), managementul relaţiilor cu clienţii etc. În figura IV.1.1 sunt prezentate
funcţionalităţile principale ale pachetului SAS.

1
Figura IV.1.1. Funcţionalităţile principale ale SAS

SAS constă dintr-un număr mare de componente, pe care organizaţiile le pot achiziţiona şi
instala separat, în funcţie de necesităţi. În centrul soluţiilor SAS se află componenta Base SAS.
Aceasta este un mediu software integrat, având facilităţi pentru accesul la date, analiza datelor,
crearea de rapoarte etc. Base SAS beneficiază şi de suportul unui limbaj de programare propriu
de generaţia a patra (Notă: Limbajele de generaţia a patra sunt orientate pe rezolvarea unei
anumite clase de probleme. Exemple sunt SQL sau PL/SQL sau cele folosite de alte pachete
software ca Matlab sau SPSS). Componentele, de tip bibliotecă, SAS/STAT, SAS/Graph şi
SAS/OR extind capabilităţile motorului de bază Base SAS. SAS/STAT oferă o gamă largă de
instrumente pentru analiza statistică a datelor. SAS/Graph este modulul care permite
vizualizarea datelor sub formă de grafice sau hărţi. SAS/OR este o componentă care are ca scop
susţinerea procesului decizional prin intermediul unor tehnici de optimizare, simulare sau
planificare a proiectelor. SAS/IML este un limbaj specializat în lucrul cu matrice. SAS Add-inn
for MS Office permite utilizatorilor să beneficieze de facilităţile analitice, de raportare şi pentru
accesul la date oferite de SAS direct din Microsoft Office prin intermediul unor meniuri şi bare
de instrumente integrate în produsele Office.
Funcţionalitatea pachetului SAS este construită în jurul a patru tipuri de prelucrări, bazate pe date,
prelucrări comune pentru aproape toate tipurile de aplicaţii software: accesarea datelor (se referă la
obţinerea accesului la datele cerute de aplicaţie), managementul datelor (presupune pregătirea datelor
astfel încât acestea să aibă forma cerută de aplicaţie), analiza datelor (rezumă sau transformă datele
primare în informaţii utile, care au o semnificaţie pentru analist) şi prezentarea datelor (comunică
informaţiile într-o manieră care demonstrează clar semnificaţia acestora).

Produsul lucrează prin intermediul programelor SAS care definesc o succesiune de operaţii ce
trebuiesc efectuate asupra datelor stocate în tabele. Un program SAS este compus din trei părţi
majore, secţiunea de DATE, secţiunile de PROCEDURI, precum şi un limbaj macro. Deşi există
interfeţe grafice destinate utilizatorilor care nu deţin cunoştinţe de programare în SAS (cum este
SAS Enterprise Guide), de cele mai multe ori aceste interfeţe sunt doar un mijloc pentru a
automatiza sau a facilita generarea de programe SAS. Succesiunea de paşi prin care datele sunt
transformate în informaţii este descrisă în figura IV.1.2.

2
Figura IV.12. Transformarea datelor în informaţii

II.2. Introducere în limbajul de programare SAS


Un program SAS constă dintr-o secvenţă de paşi trimisă, pentru execuţie, motorului SAS. În continuare
aceste secvenţe vor fi referite ca “secţiuni”.

Secţiunile pot fi de date (DATA steps) şi secţiuni de proceduri (PROC steps). Secţiunile de date sunt,
de obicei, folosite pentru a crea tabele de date în format SAS (Data Set) pe baza unor seturi de date SAS,
fişiere text sau alte formate, precum şi pentru a actualiza tabele deja existente. Una din modalităţile prin
care SAS Enterprise Guide foloseşte secţiunea de date constă în manipularea datelor în Grila de date
(Data Grid), unde, de exemplu, se poate adăuga o nouă coloană la datele deja existente. O altă modalitate
implică folosirea procedurilor de import a datelor (Import Wizard). Secţiunile de proceduri sunt, de
obicei, folosite pentru a efectua prelucrări şi interogări, pentru a genera rapoarte, a sintetiza date sau
pentru a genera grafice (figura IV.6.1.).

Seturile de date SAS conţin două părţi: o parte descriptivă care stochează informaţii despre valorile
datelor (precum lungimile de stocare, etichetele şi formatele) şi o parte de date propriuzise.

3
Figura IV.6.1. Secţiunile unui program SAS

Secţiunile de date încep cu cuvântul DATA, iar cele de proceduri cu cuvântul PROC şi se termină de cele
mai multe ori cu directiva RUN. Fiecare secţiune este executată complet, înainte să se treacă la
următoarea secţiune.

Produsul SAS conţine, de asemenea şi declaraţii globale, care afectează întreg mediul SAS şi rămân
valide de la o secţiune DATA sau PROC la alta (de exemplu directivele OPTIONS şi TITLE), până
când ele sunt schimbate de alte directive globale sau până se încheie sesiunea de lucru SAS.

Fişierele cu care lucrează SAS la nivel de cod sunt de două tipuri pricipale care sunt reliefate şi în Figura
IV.6.3.: preluate, adică importate din alte aplicaţii (externe), şi fişiere generate de către SAS (interne),
care pot fi temporare (stocate în librăria Work) sau permanente (stocate în alte librării sau directoare
decât Work).

Figura IV.6.3. Tipuri de fişiere în SAS

Sintaxa codului SAS


Declaraţiile SAS au următoarele caracteristici:

 Încep, de obicei, cu un cuvânt cheie.

 Întotdeuna de termină cu punct şi virgulă (de exemplu: title 'Analiză Comenzi';) – această regulă este
foarte importantă deoarece un caracter de tipul ; pus incorect în cadrul codului SAS poate genera
mesaje de eroaregreu de interpretat.

 Pentru a separa cuvintele, se pot folosi unul sau mai multe spaţii libere.

 Declaraţiile pot începe şi se pot termina în orice coloană.

 O singură declaraţie poate fi scrisă pe mai multe rânduri (de exemplu: input Nr_Comandă $ 1-5
Cod_Produs $ 2-10 Cantitate $ 13-15 PreţVânzare 17-22 Venit $ 25-32;).

 Mai multe declaraţii pot fi scrise pe acceaşi linie (de exemplu: title 'Analiză Comenzi‘; var
PreţVânzare; run;).

4
 Introducerea comentariilor se face utilizând caracterele /* pentru a începe un comentariu, apoi se scrie
textul comentariului, iar pentru a-l termina se introduc din nou caracterele */. Aceste comentarii pot fi
utilizate pentru a documenta sau a descrie programul, dar nu influenţează rezultatul acestuia (de
exemplu: /* Creaza tabela SAS ad_date.comenzi */). În aceiaşi linie de cod pot fi introduse mai
multe comentarii imbricate (de exemplu input Produs $ Cantitare /* cantitatea este în bucaţi */
PretAchiziţie PreţVânzare;).

 altă modalitate de a introduce un comentariu este de a-l începe cu caracterul * şi a-l termina cu
caracterul ; indiferent de numărul de linii pe care îl cuprinde.

 directivă care începe cu caracterul nume variabilă = se numeşte directivă de atribuire (assignment
statement). Ea este o instrucţiune de execuţie a calculelor din partea dreaptă a semnului = şi de
atribuire a valorii rezultatului variabilei al cărei nume este trecut în partea stângă a semnului =.
Directiva de atribuire poate utiliza următorii operatori (prezentaţi în ordinea crescătoare a priorităţii
lor): + pentru adunare – pentru scădere * pentru înmulţire / pentru împărţire ** pentru ridicare la
putere – pentru negare.

 SAS este case-sensitive. Numele fiecărei variabile va fi reţinut aşa cum va fi întâlnit prima oară şi
apoi, la generarea rapoartelor, va fi utilizat ca atare.

 Numele variabilelor, precum şi ale seturilor de date nu pot fi mai mari de 32 de caractere şi trebuie să
înceapă cu o literă sau underscore _. Celelalte caractere ale numelui pot fi litere, cifre sau underscore,
dar nu şi caracterele spaţiu, -, %. Iată câteva nume de variabile sau seturi de date SAS valide şi
nevalide:
Valide Nevalide

Nume 8_este_suficient Începe cu un număr

Nume2 Preţul per buc Conţine spaţiilibere

Cost_pe_Kg Total-Luna Conține un caracter nevalid (-)

DATA Num% conține un caracter nevalid (%)

timp

X12Y34Z56

 Instrucţiunea care începe cu un asterisc (*) se numeşte o declaraţie de comentariu. O modalitate de a


scrie un comentariu SAS este de a începe cu un asterisc, de a scrie cât de multe linii de comentariu se
doreşte şi se încheie declaraţia cu; . Ea permite să se includă comentarii şi informaţii despre numele
fişierului utilizat pentru stocarea programului, despre scopul programului şi despre data la care a fost
scris programul, despre data şi scopul oricăror modificări aduse programului.

5
Un alt mod de a adăuga un comentariu la un program SAS este să fie incadrat între seturile de
caractere / * comentariu * /. Se pot include comentarii de acest tip şi într-o declaraţie SAS. De
exemplu, se poate scrie:

INPUT Sex $ Vârsta / * vârsta este în ani * / Înălțime Greutate;

Comentariile pot fi făcute chiar mai elaborate, de exemplu:

*-------------------------------------------------------------------------------------- *

| Nume program: PROG.SAS stocat în d:\datesas\exemple |


| Scop: Programul citeşte date privind înălţimea şi greutatea şi calculează |
| un indicele de masă corporală (IMC) pentru fiecare subiect. |
*-------------------------------------------------------------------------------------- *

sau

/****************************************************************

Nume program: PROG.SAS stocat în d:\datesas\exemple


Scop: Programul citeşte date privind înălţimea şi greutatea şi calculează
un indicele de masă corporală (IMC) pentru fiecare subiect.

******************************************************************/

Seturile de date SAS (SAS data set) conţin două părţi: o parte de descriere şi o parte de date (nu numai
valoarea, ci şi informaţii despre aceasta – ca lungimea, eticheta şi formatul). De asemenea, datele nu pot fi
decât de două tipuri – numerice sau caracter.

II.3. Crearea seturilor de date SAS pornind de la fisiere externe


II.3.1. Importul datelor din fişiere text cu delimitatori

Într-un fişier text delimitat


fiecare linie de text reprezintă o înregistrare, iar câmpurile sunt separate prin caractere
cunoscute.
Delimitatorii frecvent utilizaţi sunt caracterul tab (\t) sau diferite caractere de punctuaţie.
Delimitatorul trebuie întotdeauna să fie un caracter care nu se regăseşte în date
Delimitatorul implicit este spaţiu

6
Numele fisierului de date SAS nou creat se indica dupa cuvântul cheie DATA şi va fi stocat pe
server în rădăcina arborelui utilizatorului

Declaraţia INFILE indică sursa de provenienţă a datelor, inclusiv numele fişierulului text.

Declaraţia INPUT asociază datele cu denumirea variabilelor. Variabila de tip caracter este urmată de
semnul $.

Implicit, lăţimea variabilelor este de 8 octeţi, de aceea pentru a afişa denumirea completă, aceasta se va
seta explicit prin intermediul directivei LENGTH

DATA produse;
INFILE '/home/username/produse.txt';
INPUT Denumire $ Cantitate Categorie $;
RUN;
 numele variabilelor + $
daca sunt de tip sir de
caracter
 spre ex. cantitate nu are
nimic dupa deci e numeric
DATA produse;
INFILE '/home/username/produse.txt'; obligatoriu ; dupa fiecare
instructiune
LENGTH Denumire $15;
LENGTH Categorie $12;
INPUT Denumire $ Cantitate Categorie $;
RUN;

Pentru valori separate prin virgulă, declaraţia INFILE trebuie să conţină opţiunea dsd. Dacă există
două virgule una după alta, se va considera că este o valoare lipsă, fără a fi nevoie ca între virgule să
existe un spaţiu

INFILE '/home/username/produse.txt' dsd;

Pentru alte tipuri de delimitatori, declaraţia INFILE trebuie folosită împreună cu opţiunea dlm sau
delimiter

INFILE '/home/username/produse.txt' delimiter='/';

sau

INFILE '/home/nume.prenume/produse4.txt' dlm='/'; In exemplul de mai jos edte folosit delimitatorul /.

Dacă se doreşte ca datele să fie citite din fişierul text produse.txt şi integrate în cadrul codului
programului, acest lucru se realizează prin intermediul declaraţiei DATALINES

DATA produse;
INFILE '/home/username/produse.txt' dsd;
LENGTH Denumire $15;

7
LENGTH Categorie $12;
INPUT Denumire $ Cantitate Categorie $;
DATALINES;
banane,5,fructe
ciocolata,10,dulciuri
inghetata,11,dulciuri
paine,3,panificatie
coriandru,2,condimente
mere,4,fructe
RUN;
De asemenea dacă utilizatorul nu doreşte să importe datele dintr-un fişier text ci sa le introducă
direct prin intermediul programului se va folosi tot declaraţia DATALINES dar se renunţă la
instrucţiunea INFILE, cu condiţia ca delimitatorul să fie spaţiu:

DATA produse;
INPUT Denumire $ Cantitate Categorie $;
DATALINES;
Banane 5 fructe
Ciocolata 10 dulciuri
Inghetata 11 dulciuri
Paine 3 panificatie
Coriandru 2 condimente
Mere 4 fructe
RUN;

II.3.2. Importul datelor din fişiere text cu coloane cu lăţime fixă

Pentru importul ini astfel de fişier într-un set de date SAS se utilizează declaraţia INPUT
specificând pentru fiecare variabilă denumirea, semnul $ pentru variabilele de tip caracter,
precum şi poziţia de început şi de sfârşit a fiecărei variabile.
DATA produse;
INFILE '/home/username/produse.txt';
INPUT Denumire $ 1-9
Cantitate 10-11
Categorie $ 12-22;
RUN;

DATA demografie;

8
INFILE "d:\datesas\date1.txt";
INPUT Sex $ Varsta Inaltime Greutate;
*Calculeaza indicele de masa corporala (IMC);
IMC = (Greutate / 2.2) / (Inaltime*.0254)**2;
RUN;

II.4. Definirea şi aplicarea de formate în secţiunile de date şi de


proceduri
Această metodă de introducere poate citi datele de tip caracter şi valori numerice standard cât şi
valori numerice nestandard.

Semnele @ din instrucţiunea INPUT se numesc pointeri de coloană (“column pointers”). De


exemplu, @ 4 indică SAS, să meargă la coloana 4. După numele variabilelor se găsesc
formatele de intrare, numite şi informate SAS.

Formatele de intrare sunt instrucţiuni care îi spun SAS cum să citească valoarile datelor.
Alegerea formatului de intrare de utilizat este dictată de date

Formatul w.d citeşte valori numerice standard – w indică câte coloane vor fi citite iar d (care este
opţional) numărul de zecimale ale valorii.

Dacă numărul care va fi citit are deja incorporate cifre zecimale SAS va ignora partea d a
formatului de intrare, punctul zecimal va fi numărat ca o coloană care va fi citită (de exemplu
dacă valoarea care trebuie citită este 1.23 iar formatul de intrare este 4.1 in setul de date SAS se
va regăsi valoarea 1.23

Formatul de intrare $w. Indică citirea a w coloane de tip caracter.

Formatul de intrare MMDDYY10 importul datei în forma mm/dd/yyyy. SAS va stoca data ca o
valoare numerică egală cu numărul de zile începând cu 1 Ianuarie 1960. Astfel, dacă valoarea
importată este 01/01/1960 cu formatul de intrare MMDDYY10 în setul de date SAS se va regăsi
valoarea 0, dacă valoarea importată este 02/02/1960 cu formatul de intrare MMDDYY10 în setul
de date SAS se va regăsi valoarea 1 etc.

De exemplu dacă avem următorul fişier text:


00110/21/1955M 1145
00211/18/2001F 18722
00305/07/1944M 123.45
00407/25/1945F -12345
Programul de import al acestui fişier în maniera neformatată este:

9
DATA Angajati;
INFILE 'd:\exemple\Angajati.txt';
INPUT Id $ 1-3
DataNasterii $ 4-13
Sex $ 14
Salariu 15-21;
RUN;
Angajati in loc de financial ca vrea
TITLE "Situatie Angajati"; sa printeze tabela Angajati

PROC PRINT data=financial;


RUN;

Unde procedura PRINT realizează listarea fişierului SAS Angajaţi importat din fisierul text
Angajaţi.txt iar instrucţiunea TITLE indica titlul raportului, acesta va fi:
Listing of Situatie Angajati
Obs Id DataNasterii Sex Salariu
1 001 10/21/1955 M 1145.00
2 002 11/18/2001 F 18722.00
3 003 05/07/1944 M 123.45
4 004 07/25/1945 F -12345.00

Dacă se foloseşte citirea formatată, conform următorului program

DATA Angajati;
INFILE 'd:\exemple\Angajati.txt';
INPUT @1 Id $3.
@4 DataNasterii mmddyy10.
@14 Sex $1.
@15 Salariu 7.;
RUN;
TITLE "Situatie Angajati";
PROC PRINT data=financial;
RUN;

Se va obţine următorul raport (unde se observă că data naşterii nu este inteligibilă)

Listing of Situatie Angajati


Obs Id DataNasterii Sex Salariu
1 001 -1533 M 1145.00

10
2 002 15297 F 18722.00
3 003 -5717 M 123.45
4 004 -5273 F -12345.00

Pentru a lista datele din fişierul de date SAS în formatul dorit în procedura PRINT se utilizează
instrucţiunea FORMAT prin care se defineşte un format de ieşire:

DATA Angajati;
INFILE 'd:\exemple\Angajati.txt';
INPUT @1 Id $3.
@4 DataNasterii mmddyy10.
@14 Sex $1.
@15 Salariu 7.;
RUN;
TITLE "Situatie Angajati";
PROC PRINT data=financial;
FORMAT DataNasterii mmddyy10.
Salariu dollar11.2;
RUN;

Listing of Situatie Angajati


Obs Id DataNasterii Sex Salariu
1 001 10/21/1955 M $1,145.00
2 002 11/18/2001 F $18,722.00
3 003 05/07/1944 M $123.45
4 004 07/25/1945 F $-12,345.00

II.5. Adăugarea de variabile la un set de date SAS


 La variabilele unui set de date SAS pot fi ataşate etichete fie in sectiunea DATA fie în
secţiunea PROC.
 Etichetele pot fi create prin intermediul instrucţiunii LABEL.
 După cuvântul cheie LABEL, se introduce numele variabilei, urmat de un semnal egal, apoi
de etichetă, plasată între o singură sau două ghilimele.
 Etichetele pot avea o lungime de până la 256 de caractere (255 pe platforme UNIX).
Înstrucţiunea LABEL se termină cu cucaracterul ;. Când se execută anumite proceduri SAS,
aceste etichete sunt tipărite împreună cu variabila nume.
De exemplu
DATA note_test;

11
LENGTH ID $ 3 Nume $ 15;
INPUT ID $ Nota1-Nota3;
LABEL ID = NumarMatricol'
Nota1 = 'Matematica'
Nota2 = ‘Geografie'
Nota3 = 'Fizica';
RUN;
 Dacă includeţi instrucţiunea LABEL în secţiunea DATA, etichetele rămân asociate cu
variabilele respective;
 Dacă includeţi instrucţiunea LABEL într-un pas PROC, etichetele sunt utilizate numai
pentru acea procedură. Acest lucru se datorează faptului că eticheta creată într-o etapă DATA
este stocată în partea descriptivă a setului de date SAS.

II.5.1. Crearea şi utilizarea seturilor de date temporare

 Când se utilizează o secţiune de date pentru a crea un set de date, în mod normal se crează un
set de date temporar, care va exista doar pe durata sesiunii de lucru curente.
 SAS plasează acest set de date într-o bibliotecă de date SAS care este referită ca “WORK”.
 Toate fişierele SAS sunt sterse la sfârşitul sesiunii de lucru.

În continuare este prezentat un exemplu a unei secţiuni DATA în care se crează un set de date
temporar NOTE_TEST.

DATA note_test;
LENGTH ID $ 3 Nume $ 15;
INPUT ID $ Nota1-Nota3;
LABEL ID = NumarMatricol'
Nota1 = 'Matematica'
Nota2 = ‘Geografie'
Nota3 = 'Fizica';
RUN;

Programul precedent se referă la un set de date temporar ca fiind NOTE_TEST.SAS.


Produsul SAS ataşează prefix-ul WORK la toate set-urile de date temporare şi referă setul de
date NOTE_TEST cu numele compus WORK.NOTE_TEST.

12
Deoarece SAS asignează implicit prefix-ul WORK la toate set-urile de date SAS care nu au alt
prefix nu mai este nevoie să se utilizeze WORK când se rederă seturi de date temporare cum
este NOTE_TEST.

Pentru a referii acest set de date în altă secţiune DATA sau într-o secţiune PROC, se poate folosi
numele set-ului de date fără prefix-ul WORK:
PROC PRINT DATA = NOTE_TEST;
RUN;

II.5.2. Crearea şi utilizarea unui set de date permanent

Pentru a crea un set de date permanent trebuie să se indice o bibliotecă de date SAS, alta decât
WORK. WORK este un libref (referinţă de bibliotecă) rezervat pe care SAS-ul îl alocă automat
la o bibliotecă de date temporară.
Declaraţia LIBNAME se utilizează pentru a atribui un libref la o bibliotecă SAS de date. Libref
funcţionează ca un mod rapid de referire a unei biblioteci de date SAS.
Forma declaraţiei LIBNAME este următoarea:

LIBNAME libref ’your-data-library’;

unde
libref
este un nume de acces rapid către locaţia în care sunt stocate fişierele SAS ale
utilizatorului.
Libref trebuie să fie un nume valid din punct de vedere al sintaxei SAS (trebuie
să înceapă cu o literă sau cu caracterul _ şi poate conţine atât litere mici cât şi
majuscule sau cifre) şi poate avea maxim 8 caractere.

’your-data-library’

trebuie să fie numele fizic al bibliotecii dvs. de date SAS. Numele fizic este
numele recunoscut de mediul de operare.

Următorul exemplu este un exemplu al instrucțiunii LIBNAME care se utilizează cu un pas


DATA:

13
libname saveit ’your-data-library’; [1]
data saveit.note_test; [2]

...mai multe instrucţiuni SAS...

proc print data = saveit.note_test; [3]


run;

[1] Instrucțiunea LIBNAME asociază libref SAVEIT cu biblioteca de date, unde “your-data-
library” este numele dvs. de mediu de operare pentru o bibliotecă de date SAS.
[2] Pentru a crea un nou set de date SAS permanent şi a le stoca în această bibliotecă de date
SAS, trebuie să utilizaţi numele pe două niveluri SAVEIT. NOTE_TEST în instrucţiunea
DATA.
[3] Pentru a face referire la acest set de date SAS într-un pas ulterior DATA sau într-un pas
PROC, trebuie să utilizaţi numele la două niveluri SAVEIT.NOTE_TEST în pasul PROC.

14

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