Advertisement
Guest User

Untitled

a guest
Jan 16th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SAS 4.96 KB | None | 0 0
  1. libname PROJEKT "C:\Users\student\Desktop\BI_projekt\dane\SAS version";
  2.  
  3. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\loan.asc"
  4. out=PROJEKT.loan dbms=dlm replace;
  5. delimiter=";";
  6. getnames=yes;
  7. run;
  8.  
  9. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\account.asc"
  10. out=PROJEKT.account dbms=dlm replace;
  11. delimiter=";";
  12. getnames=yes;
  13. run;
  14.  
  15. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\card.asc"
  16. out=PROJEKT.card dbms=dlm replace;
  17. delimiter=";";
  18. getnames=yes;
  19. run;
  20.  
  21. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\client.asc"
  22. out=PROJEKT.client dbms=dlm replace;
  23. delimiter=";";
  24. getnames=yes;
  25. run;
  26.  
  27. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\disp.asc"
  28. out=PROJEKT.disp dbms=dlm replace;
  29. delimiter=";";
  30. getnames=yes;
  31. run;
  32.  
  33. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\district.asc"
  34. out=PROJEKT.district dbms=dlm replace;
  35. delimiter=";";
  36. getnames=yes;
  37. run;
  38.  
  39. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\order.asc"
  40. out=PROJEKT.order dbms=dlm replace;
  41. delimiter=";";
  42. getnames=yes;
  43. run;
  44.  
  45. proc import datafile="C:\Users\student\Desktop\BI_projekt\dane\asc version\trans.asc"
  46. out=PROJEKT.trans dbms=dlm replace;
  47. delimiter=";";
  48. getnames=yes;
  49. run;
  50.  
  51.  
  52. data PROJEKT.tabela (keep= account_id loan_id loan_status date data_loan data_kredyt);
  53. set PROJEKT.loan;
  54. if status in ('A', 'C') then loan_status=0;
  55. if status in ('B', 'D') then loan_status=1;
  56. data_loan=put(date,6.);
  57. rok=substr(data_loan,1,2)+1900;
  58. miesiac=substr(data_loan,3,2)*1;
  59. dzien=substr(data_loan,5,2)*1;
  60. data_kredyt=mdy(miesiac,dzien,rok);
  61. format data_kredyt ddmmyy10.;
  62. run;
  63.  
  64. proc sort data= PROJEKT.Account;
  65. by account_id;
  66. run;
  67.  
  68. proc sort data= PROJEKT.Tabela;
  69. by account_id;
  70. run;
  71.  
  72. data PROJEKT.tabela2;
  73. merge PROJEKT.tabela (in=a)
  74. PROJEKT.Account (in=b);
  75. by account_id;
  76. if a=1 and b=1;
  77. run;
  78.  
  79. proc sort data= PROJEKT.Disp;
  80. by account_id;
  81. run;
  82.  
  83. proc sort data= PROJEKT.tabela2;
  84. by account_id;
  85. run;
  86.  
  87. data PROJEKT.tabela3;
  88. merge PROJEKT.tabela2 (in=a)
  89. PROJEKT.Disp (in=b);
  90. by account_id;
  91. if a=1 and b=1;
  92. if type="OWNER" then output;
  93. run;
  94.  
  95. proc sort data= PROJEKT.Client;
  96. by client_id;
  97. run;
  98.  
  99. proc sort data= PROJEKT.tabela3;
  100. by client_id;
  101. run;
  102.  
  103. data PROJEKT.tabela4;
  104. merge PROJEKT.tabela3 (in=a)
  105. PROJEKT.Client (in=b);
  106. by client_id;
  107. if a=1 and b=1;
  108. run;
  109.  
  110. data PROJEKT.tabela4;
  111. set PROJEKT.tabela4;
  112. plec1 = substr(birth_number,3,2);
  113. if plec1 >=50 then plec = "K";
  114. else plec = "M";
  115. rok=substr(birth_number,1,2);
  116. rok=rok*1+1900;
  117. if plec1 > 50 then miesiac = (plec1-50);
  118. else miesiac = plec1;
  119. dzien = substr(birth_number,5,2);
  120. data_urodzenia = mdy(miesiac,dzien,rok);
  121. wiek = 1999 - year(data_urodzenia);
  122. format data_urodzenia DDMMYY10.;
  123. run;
  124.  
  125. proc sort data= PROJEKT.Trans;
  126. by account_id;
  127. run;
  128.  
  129. proc sort data= PROJEKT.tabela4;
  130. by account_id;
  131. run;
  132.  
  133. data PROJEKT.tabela5;
  134. merge PROJEKT.tabela4 (in=a)
  135. PROJEKT.Trans (in=b);
  136. by account_id;
  137. if a=1 and b=1;
  138. run;
  139.  
  140. proc sort data= PROJEKT.tabela5;
  141. by descending loan_id descending date;
  142. run;
  143.  
  144. data PROJEKT.tabela5;
  145. set PROJEKT.tabela5;
  146. if data_loan > date then output;
  147. run;
  148.  
  149. data PROJEKT.tabela5;
  150. set PROJEKT.tabela5;
  151. by descending loan_id descending date;
  152. if first.loan_id then output;
  153. run;
  154.  
  155. data PROJEKT.Konto;
  156. set PROJEKT.Account;
  157. data_account=put(date,6.);
  158. rok1=substr(data_account,1,2)+1900;
  159. miesiac1=substr(data_account,3,2)*1;
  160. dzien1=substr(data_account,5,2)*1;
  161. data_zal_konta=mdy(miesiac1,dzien1,rok1);
  162. format data_zal_konta ddmmyy10.;
  163.  
  164. proc sort data= PROJEKT.Konto;
  165. by account_id;
  166. run;
  167.  
  168. proc sort data= PROJEKT.tabela5;
  169. by account_id;
  170. run;
  171.  
  172. data PROJEKT.tabela6;
  173. merge PROJEKT.tabela5 (in=a)
  174. PROJEKT.Konto (in=b);
  175. by account_id;
  176. if a=1 and b=1;
  177. run;
  178.  
  179. data PROJEKT.tabela7;
  180. set PROJEKT.tabela6;
  181. staz = (data_kredyt - data_zal_konta)/30;
  182. run;
  183.  
  184.  proc sort data= PROJEKT.Card;
  185. by disp_id;
  186. run;
  187.  
  188. proc sort data= PROJEKT.Disp;
  189. by disp_id;
  190. run;
  191.  
  192. data PROJEKT.disp_card;
  193. merge PROJEKT.Disp(in=a)
  194. PROJEKT.Card (in=b);
  195. by disp_id;
  196. if a=1 and b=1;
  197. run;
  198.  
  199. proc sort data= PROJEKT.Disp_card;
  200. by account_id;
  201. run;
  202.  
  203. proc sort data= PROJEKT.Account;
  204. by account_id;
  205. run;
  206.  
  207. data PROJEKT.Disp_card_account;
  208. merge PROJEKT.Disp_card(in=a)
  209. PROJEKT.Account (in=b);
  210. by account_id;
  211. if a=1 and b=1;
  212. run;
  213.  
  214. proc sort data= PROJEKT.Disp_card_account;
  215. by account_id;
  216. run;
  217.  
  218. proc sort data= PROJEKT.Tabela7;
  219. by account_id;
  220. run;
  221.  
  222. data PROJEKT.tabela8;
  223. merge PROJEKT.tabela7(in=a)
  224. PROJEKT.Disp_card_account (in=b);
  225. by account_id;
  226. if a=1 and b=0;
  227. run;
  228.  
  229. proc sort data= PROJEKT.District;
  230. by A1;
  231. run;
  232.  
  233. proc sort data= PROJEKT.Tabela7;
  234. by district_id;
  235. run;
  236.  
  237. data PROJEKT.tabela8 (keep= frequency plec A11 A16 A13 balance wiek staz loan_status);
  238. merge PROJEKT.tabela7 (in=a)
  239. PROJEKT.District (rename= (A1=district_id) in=b);
  240. by district_id;
  241. if a=1 and b=1;
  242. run;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement