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;
 


Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
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
  • 1455 views
  • 1 like
  • 3 in conversation