Facebook
From Whipped Teal, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 119
  1.  
  2. data g1; *zbior nr 1;
  3. input id imie $ wiek;
  4. datalines;
  5. 1 Anna 20
  6. 3 Ala 24
  7. 5 Piotr 23
  8. ;
  9. run;
  10.  
  11. data g2; *zbior nr 2;
  12. input id imie $ wiek;
  13. datalines;
  14. 2 Adam 29
  15. 4 Pawel 22
  16. 6 Piotr 30
  17. ;
  18. run;
  19.  
  20. data g1_2;      *zloczenie zbiorow - wynikowy zbior to rekordy z g1 oraz "doklejone" g2;
  21. set g1 g2;      *uwaga zbior g1 oraz g2 maja identyczna strukture kolumn;
  22. run;
  23.  
  24. * analogiczne zloczenie za pomoca SQL - proc SQL ... quit;
  25. proc SQL;
  26. create table g1_g2_SQL as
  27. select * from g1
  28. union
  29. select * from g2;
  30. quit;
  31. run;
  32.  
  33. data g1_2; *zbior nr 1 + nowa kolumna ;
  34. input id imie $ wiek ocena;
  35. datalines;
  36. 1 Anna 20       4.5
  37. 3 Ala 24        5.0
  38. 5 Piotr 23      3.0
  39. ;
  40. run;
  41.  
  42. data g1_2_2;    *zloczenie zbiorow - wynikowy zbior to rekordy z g1 oraz "doklejone" g2;
  43. set g1_2 g2;   
  44. run;
  45.  
  46. data g2_1_2;    *zloczenie zbiorow - wynikowy zbior to rekordy z g1 oraz "doklejone" g2;
  47. set g2 g1_2 ;   *kolejnos nie ma znaczenia dla struktury zbioru wynikowego;
  48. run;
  49.  
  50. data g1_1_merge;        *zloczenie zbiorow - wynikowy zbior powstaje zgodnie z zasad One-to-One Merging;
  51. merge g1_2 g2;
  52. run;
  53. * One-to-One Merging - laczenie danych pierwsza obserwacja ze zbioru pierwszego
  54. z pierwsza obserwacja ze zbioru drugiego itp.
  55. jesli takie same atrybuty, po poznieszy nadpisuje wczesniejszy;
  56.  
  57.  
  58. /* inne przyklady merge */
  59.  
  60. data p1;
  61. input mies wsk wsk1;
  62. datalines;
  63. 1 2.2 4.4
  64. 2 3.3 5.5
  65. 3 4.5 6.6
  66. 4 3.3 5.3
  67. 5 5.5 5.5
  68. 6 2.2 1.1
  69. ;
  70. run;
  71. data p2;
  72. input mies wsk wsk2;
  73. datalines;
  74. 1 2.2 4.9
  75. 2 3.3 5.9
  76. 3 4.5 6.9
  77. 4 3.3 5.9
  78. 6 2.2 1.9
  79. ;
  80. run;
  81.  
  82. Data sklej3;
  83. merge p1 p2 ;
  84. run;
  85.  
  86. * prosze wyjascic sklejanie zbiorow za pomoca merge;
  87. /* w tym przypadku zbiory posiadaj ten sam indeks dla obserwcji 6 */
  88.  
  89. Data sklej4;
  90. merge p1 p2 (rename=(wsk=wsk_new));
  91. run;
  92.  
  93.  
  94. data st3;
  95. input ID_st imie $ ID_kurs $;
  96. datalines;
  97. 1 Pawel k1
  98. 2 Ania k1
  99. 3 Agata k2
  100. 4 Zosia k2
  101. 5 Piotr k1
  102. ;
  103. run;
  104.  
  105. data kurs;
  106. input ID_kurs $ opis $;
  107. datalines;
  108. k1 JO
  109. k2 W-F
  110. ;
  111. run;
  112.  
  113. * merge z opcja BY zmienna (klucz) ;
  114. * zmienna - indeks, ktory wykorzystany jest do zloczenia - klucz zloczenia;
  115. * UWAGA - dane musza byc posortowane wg zmiennej;
  116.  
  117.  
  118. ********* przyklad bez sortowania!!!!!!!!!!!!!!;
  119.  
  120. data merge_by;
  121. merge  st3 kurs;
  122. by ID_kurs;
  123. run;
  124.  
  125. ********* przyklad bez sortowania!!!!!!!!!!!!!!;
  126.  
  127.  
  128. PROC SORT data=kurs;
  129. BY ID_kurs;
  130.  
  131. PROC SORT data=st3;
  132. BY ID_kurs;
  133.  
  134. data merge_by_sort;
  135. merge  st3 kurs;
  136. by ID_kurs;
  137. run;
  138.  
  139. * prosze porownac wynik z oraz bez sortowania;
  140.  
  141. /* w ramch zdan projektowych nalezy wykonac:
  142. 1. zloczenia dla wlasnych danych,
  143. 2. uzyc minimum trzecch zbiorow,
  144. 3. pokazac inne zloczenia za pomoca proc SQL;*/
  145.  
  146.  
  147.