SAS Column Output

SAS Day 26: Column Output

Background:

For table outputs, some times we want both the count and an overall percentage for each category rather than a simple number count.
E.g. 75( 74): 75 count represents 74% of the total number in this group.
In order to generate this output format, we need the variable count(c1,c2..) and group total (&n1, &n2..)

Pexels / Pixabay

Example 1: Single Column 

col1= count ||" ("|| put((count*100/&bign.),4.1) || ")";

Output:

 

Example 2: Multiple Column

Dataset:

 

Desired Output:

 

As we can see the col1 to col4 shows both the count and the percentage for each group.

Solution Code:

data final;
 set all;
array col[4] $40 col1- col4;
array p[4] (&n1 &n2 &n3 &n4);
array c[4] n1 n2 n3 n4;
do i=1 to 4
col[i]= put (coalesce(c[i],0),4.)|| "(" || put (coalesce(c[i],0)/p[i]*100, 5.1) || ")"

 

Sample dataset code:

%let n1= 10;
%let n2= 5;
%let n3=6;
%let n4=11;

data test;
input c1 c2 c3 c4;
datalines;
. 2 4 5
3 . 4 6
10 3 2 1
0 1 2 9
;
run;

The code was originated from Denish,(i hope i spelled his name correctly 🙂 )

Happy Practicing!💃

 

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Social media & sharing icons powered by UltimatelySocial
%d bloggers like this: