Documente Academic
Documente Profesional
Documente Cultură
Instrucutiunea SET este folosita pentru fuziunea unu-la-unu, pentru concatenare si pentru
interclasare.
În timp ce secțiunea de date defineste un set de date nou la concatenare, procedura APPEND doar
adaugă observațiile unui set de date la sfârșitul unui set de date de bază (master data set).
SAS nu citește datele din setul de date de bază atunci când execută procedura APPEND.
Dacă există mai multe variabile care au același nume în seturile de date de intrare, atunci fuziunea
seturilor de date în secțiunea de date va duce la suprascrierea valorilor variabilelor din primul set de
date cu valorile variabilelor cu același nume din seturile de date care îl succed.
Optiunea DROP doar elimina variabilele din noul set de date, acestea putand fi in continuare citite si
diponibile pentru procesare in sectiunea de date.
COALESCE suprapune coloanele specificate prin verificarea valorii fiecărei coloane în ordinea în care
acestea sunt listate și returnarea primei valori care nu este o valoare nulă. Aceasta se poate folosi
impreuna cu mai multe tipuri de join-uri.
1.
DATA pret1;
DATALINES;
124 23.5
178 35.0
197 44.6
;RUN;
DATA pret2;
DATALINES;
234 53.7
356 75.5
367 84.0
;RUN;
DATA concatenare;
RUN;
Rezultat:
2.
DATA nume1;
DATALINES;
0123 Mihai
0134 Delia
0162 Ionela
; RUN;
DATA nume2;
DATALINES;
0124 Alexandra
0138 Georgiana
0189 Sebastian
; RUN;
DATA concatenare;
RUN;
Rezultat:
3.
DATA persoane1;
DATALINES
1M
2F
3M;
RUN
DATA persoane2;
DATALINES
4 Masculin IL
5 Feminin DB
6 Masculin VL
7 Feminin CJ ;
RUN
;
data interclasare
by Cod;
RUN
Rezultat:
4.
DATA persoane1;
DATALINES;
1M
2F
3M
4F
RUN;
DATA persoane2;
DATALINES;
2 Masculin IL
3 Feminin DB
6 Masculin VL
7 Feminin CJ
RUN;
data jonctiune;
by /* descending*/ Cod;
RUN;
Rezultat:
5.
DATA produse1;
DATALINES;
124 23.5 50
178 35.0 43
197 44.6 12
;
RUN;
DATA produse2;
DATALINES;
234 53.7 10
356 75.5 12
367 84.0 34
RUN;
DATA concatenare;
produse2 (RENAME=(Cost=Pret));
RUN;
Rezultat:
6.
PROC SQL;
b.Cantitate, b.DATA_vanzare,
a.Cod_vanzare,
a.Nume
FROM vanzari b, agenti a
ORDER BY Cod_vanzare;
QUIT;
INNER JOIN
Rezultat:
7.
vanzari;
BY Cod_vanzare;
RUN;
BY Cod_vanzare;
RUN;
DATA inner_join;
MERGE vanzari ( in = s )
agenti ( in = p );
BY Cod_vanzare;
IF s and p;
RUN;
INNER JOIN
Rezultat:
8.
PROC SQL;
SELECT s.Tranzactie,
s.Cod_produs,s.Cantitate,
s.DATA_vanzare,
p.Cod_vanzare,
p.Nume
FROM vanzari s
left join
agenti p
ON s.Cod_vanzare =
p.Cod_vanzare
ORDER BY Cod_vanzare;
QUIT;
LEFT JOIN
Rezultat:
9.
vanzari;
BY Cod_vanzare;
RUN;
BY Cod_vanzare;
RUN;
DATA left_MERGE;
MERGE vanzari ( in = s )
agenti ( in = p );
BY Cod_vanzare;
IF s;
RUN;
LEFT JOIN
Rezultat:
10.
PROC SQL;
SELECT p.Cod_vanzare,
p.Nume,
s.Tranzactie,
s.Cod_produs,
s.Cantitate,
s.DATA_vanzare
FROM vanzari s
right join
agenti p
ON s.Cod_vanzare =
p.Cod_vanzare
ORDER BY Cod_vanzare;
QUIT;
RIGHT JOIN
Rezultat:
11.
BY Cod_vanzare;
RUN;
BY Cod_vanzare;
RUN;
DATA full_MERGE;
MERGE vanzari ( in = s )
agenti ( in = p );
BY Cod_vanzare;
RUN;
Rezultat:
12.
PROC SQL;
SELECT p.Cod_vanzare,
p.Nume,
s.Tranzactie,
s.Cod_produs,
s.Cantitate,
s.DATA_vanzare
FROM vanzari s
agenti p
ON s.Cod_vanzare =
p.Cod_vanzare
ORDER BY Cod_vanzare;
QUIT;
Rezultat: