BookmarkSubscribeRSS Feed
Q1983
Lapis Lazuli | Level 10

data test;

infile datalines;

input ctr $ cnt ;

return;

datalines;

4411 5

4455 15

4466 6

4477 11

;

run;

 

proc report = test style(summary)=Header;

title 'test';

column ctr cnt PctTot;

define ctr /order order=data style (column)=Header;

define cnt /sum f=comma6.;

define PctTot ?????????????

compute after ctr ;

line ' ';

endcomp;

run;

 

I am attempting to do the following:

 

Desired Output

Title ‘ test’

Ctr                         Cnt                 PctTot

4411                      5                   13.51%     

4455                      15                 40.54%   

4466                       6                  16.21%

4477                       11                 29.72%   

Grand Total            37                100.00

 

I need to round the PctTot   2 decimal places and include lines as well as a Grand Total

3 REPLIES 3
Ksharp
Super User
How about this one.


data test;
infile datalines;
input ctr $ cnt ;
return;
datalines;
4411 5
4455 15
4466 6
4477 11
;
run;
 

proc report data= test nowd style(summary)=Header;
title 'test';
column ctr cnt PctTot;
define ctr /order order=data style (column)=Header ;
define cnt /sum f=comma6.;
define PctTot/computed f=percent8.2;
compute before;
 sum=cnt.sum;
endcomp;
compute PctTot;
 pcttot=cnt.sum/sum;
endcomp;
compute after;
 ctr='Total';
endcomp;
rbreak after /summarize;
run;
 


hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1098 views
  • 1 like
  • 3 in conversation