data have;
length ctr $25.;
input ctr cnt cnt2;
return;
datalines;
4544 2 1
4544 3 1
4465 10 1
4465 5 1
4475 1 0
4475 2 0
4475 3 1
4476 5 2
4476 6 1
;
run;
proc report data = have nowd style(summary)=Header;
column ctr cnt cnt2 /*rtot*/;
define ctr /order order=data style (column)=Header "Center";
define cnt /sum f=comma6. "Total Opened";
define cnt2 /sum f=comma6. "No Activity";
/*define RTot /computed f=comma16. "Row Totals";*/
/*compute RTot;
/*RTot=sum(cnt.sum,cnt2.sum);/*row_tot*/
endcomp;
compute before;
sum=cnt.sum;
sum=cnt2.sum;
endcomp;
compute after;
ctr='Grand Total';
endcomp;
rbreak after /summarize;
run;
It produces this output (copy also enclosed)
| Have | ||
| Center | Total Opened | No Activity |
| 4544 | 2 | 1 |
| 3 | 1 | |
| 4465 | 10 | 1 |
| 5 | 1 | |
| 4475 | 1 | 0 |
| 2 | 0 | |
| 3 | 1 | |
| 4476 | 5 | 2 |
| 6 | 1 | |
|
Grand Total
|
37 | 8 |
I want to produce the following with totals and percentages by Center and then Grand totals(info highlighted in yellow)
| Want | |||
| Center | Total Opened | No Activity | %Inactive |
| 4544 | 2 | 1 | |
| 3 | 1 | ||
| Total-4544 | 5 | 2 | 40 |
| 4465 | 10 | 1 | |
| 5 | 1 | ||
| Total-4465 | 15 | 2 | 13.33333 |
| 4475 | 1 | 0 | |
| 2 | 0 | ||
| 3 | 1 | ||
| Total-4475 | 5 | 1 | 20 |
| 4476 | 5 | 2 | |
| 6 | 1 | ||
| Total-4476 | 11 | 3 | 27.27273 |
| Grand Total | 37 | 8 |
Hello,
Check this out:
proc report data = have nowd style(summary)=Header;
column ctr cnt cnt2 /*rtot*/ pct_inactive;
define ctr /order order=data style (column)=Header "Center";
define cnt /sum f=comma6. "Total Opened";
define cnt2 /sum f=comma6. "No Activity";
define pct_inactive/ computed format=percent8.2 '%Inactive';
compute after ctr;
ctr='Sub Total';
pct_inactive=cnt2.sum/cnt.sum;
endcomp;
compute after;
ctr='Grand Total';
endcomp;
break after ctr / summarize ;
rbreak after /summarize;
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.