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…).
[caption id=“attachment_1726” align=“alignnone” width=“750”]
Pexels / Pixabay[/caption]
**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 :) )