10 Metric = put(Ptile,percent6.);
23 format Percent Cum_Percent percent7.2;
25 dcl hash metrics(dataset:
"ptiles" 28 metrics.defineKey(
"Ptile");
29 metrics.defineData(
"Ptile",
"Metric",
"Value");
31 dcl hiter iterPtiles(
"metrics");
33 dcl hash distribution(ordered:
"A");
34 distribution.defineKey(
"&Var");
35 distribution.defineData(
"&Var",
"Count",
"Percent",
"Cumulative",
"Cum_Percent");
36 distribution.defineDone();
37 dcl hiter iterDist(
"distribution");
38 do Rows = 1 by 1 until(lr);
39 set dw.AtBats(keep=&Var) end=lr;
41 if distribution.find() ne 0 then Count = 0;
43 distribution.replace();
45 maxCount = max(Count,maxCount);
50 do i = 1 to distribution.num_items;
52 Percent = divide(Count,Rows);
55 Cum_Percent = divide(_Cum,Rows);
56 distribution.replace();
57 if Count = maxCount then metrics.add(Key:.,Data:. ,Data:
"Mode",Data:&Var);
58 if last le ptile le Cum_Percent then
61 if ptile ne 1 then metrics.replace();
62 if iterPtiles.next() ne 0 then ptile = 1;
67 metrics.add(Key:.,Data:.,Data:
"Mean",Data:divide(Total,Rows));
70 metrics.add(Key:.,Data:.,Data:
"Min",Data:&Var);
73 metrics.add(Key:.,Data:.,Data:
"Max",Data:&Var);
75 metrics.output(dataset:
"Metrics(drop=ptile)");
76 distribution.output(dataset:
"Distribution");