data g1; *zbior nr 1;
input id imie $ wiek;
datalines;
1 Anna 20
3 Ala 24
5 Piotr 23
;
run;
data g2; *zbior nr 2;
input id imie $ wiek;
datalines;
2 Adam 29
4 Pawel 22
6 Piotr 30
;
run;
data g1_2; *zloczenie zbiorow - wynikowy zbior to rekordy z g1 oraz "doklejone" g2;
set g1 g2; *uwaga zbior g1 oraz g2 maja identyczna strukture kolumn;
run;
* analogiczne zloczenie za pomoca SQL - proc SQL ... quit;
proc SQL;
create table g1_g2_SQL as
select * from g1
union
select * from g2;
quit;
run;
data g1_2; *zbior nr 1 + nowa kolumna ;
input id imie $ wiek ocena;
datalines;
1 Anna 20 4.5
3 Ala 24 5.0
5 Piotr 23 3.0
;
run;
data g1_2_2; *zloczenie zbiorow - wynikowy zbior to rekordy z g1 oraz "doklejone" g2;
set g1_2 g2;
run;
data g2_1_2; *zloczenie zbiorow - wynikowy zbior to rekordy z g1 oraz "doklejone" g2;
set g2 g1_2 ; *kolejnos nie ma znaczenia dla struktury zbioru wynikowego;
run;
data g1_1_merge; *zloczenie zbiorow - wynikowy zbior powstaje zgodnie z zasad One-to-One Merging;
merge g1_2 g2;
run;
* One-to-One Merging - laczenie danych pierwsza obserwacja ze zbioru pierwszego
z pierwsza obserwacja ze zbioru drugiego itp.
jesli takie same atrybuty, po poznieszy nadpisuje wczesniejszy;
/* inne przyklady merge */
data p1;
input mies wsk wsk1;
datalines;
1 2.2 4.4
2 3.3 5.5
3 4.5 6.6
4 3.3 5.3
5 5.5 5.5
6 2.2 1.1
;
run;
data p2;
input mies wsk wsk2;
datalines;
1 2.2 4.9
2 3.3 5.9
3 4.5 6.9
4 3.3 5.9
6 2.2 1.9
;
run;
Data sklej3;
merge p1 p2 ;
run;
* prosze wyjascic sklejanie zbiorow za pomoca merge;
/* w tym przypadku zbiory posiadaj ten sam indeks dla obserwcji 6 */
Data sklej4;
merge p1 p2 (rename=(wsk=wsk_new));
run;
data st3;
input ID_st imie $ ID_kurs $;
datalines;
1 Pawel k1
2 Ania k1
3 Agata k2
4 Zosia k2
5 Piotr k1
;
run;
data kurs;
input ID_kurs $ opis $;
datalines;
k1 JO
k2 W-F
;
run;
* merge z opcja BY zmienna (klucz) ;
* zmienna - indeks, ktory wykorzystany jest do zloczenia - klucz zloczenia;
* UWAGA - dane musza byc posortowane wg zmiennej;
********* przyklad bez sortowania!!!!!!!!!!!!!!;
data merge_by;
merge st3 kurs;
by ID_kurs;
run;
********* przyklad bez sortowania!!!!!!!!!!!!!!;
PROC SORT data=kurs;
BY ID_kurs;
PROC SORT data=st3;
BY ID_kurs;
data merge_by_sort;
merge st3 kurs;
by ID_kurs;
run;
* prosze porownac wynik z oraz bez sortowania;
/* w ramch zdan projektowych nalezy wykonac:
1. zloczenia dla wlasnych danych,
2. uzyc minimum trzecch zbiorow,
3. pokazac inne zloczenia za pomoca proc SQL;*/
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}