/** proc sql ; reset noprint ; create table work.gc_credit_amount_agg01 as select Credit_Amount, count(*) as count_all, sum(Creditability) as count_one, ((calculated count_all) - (calculated count_one)) as count_zero, ((calculated count_one) / (calculated count_all)) as ind_rate, (case when ( Credit_Amount le 3578) then 1 when (3578 lt Credit_Amount le 5743) then 2 when (5743 lt Credit_Amount le 7127) then 3 when (7127 lt Credit_Amount ) then 4 else 0 end) as group from work.german_credit group by Credit_Amount order by Credit_Amount ; quit ; /**/ /** read data &indata. into POINTS=[nv_obs_num] nv_predictor_value nv_r_cum_all nv_r_cum_one nv_r_cum_zero nv_r_ind_all nv_r_ind_one nv_r_ind_zero nv_w_cum_all nv_w_cum_one nv_w_cum_zero nv_w_ind_all nv_w_ind_one nv_w_ind_zero ; /**/ data work.gc_credit_amount_agg01ic ; set work.gc_credit_amount_agg01 end = last ; keep nv_obs_num nv_predictor_value nv_w_cum_all nv_w_cum_one nv_w_cum_zero nv_w_ind_all nv_w_ind_one nv_w_ind_zero ind_rate group ; label nv_predictor_value = "Credit_Amount" nv_w_ind_all = "count_all" nv_w_ind_one = "count_one" nv_w_ind_zero = "count_zero" ; nv_obs_num = _N_ ; nv_predictor_value = Credit_Amount ; nv_w_ind_all = count_all ; nv_w_ind_one = count_one ; nv_w_ind_zero = count_zero ; nv_w_cum_all + count_all ; nv_w_cum_one + count_one ; nv_w_cum_zero + count_zero ; if last then do ; call symputx ("mnv_obs_tot", _N_) ; call symputx ("mnv_w_cum_all", nv_w_cum_all) ; call symputx ("mnv_w_cum_one", nv_w_cum_one) ; call symputx ("mnv_w_cum_zero", nv_w_cum_zero) ; put nv_obs_num= nv_w_cum_all= nv_w_cum_one= nv_w_cum_zero= ; end ; run ; %put mnv_obs_tot = &mnv_obs_tot. ; %put mnv_w_cum_all = &mnv_w_cum_all. ; %put mnv_w_cum_one = &mnv_w_cum_one. ; %put mnv_w_cum_zero = &mnv_w_cum_zero. ; title2 "_3_ PROC PRINT DATA = &syslast." ; proc print data = &syslast. ; run ; title2 ;