Hi:
  Although PROC FREQ will create an output dataset with percentages, is there a reason you don't want to use PROC TABULATE to calculate percentages??? For example, the program below:
[pre]
proc freq data=sashelp.class;
  tables age/out=work.frqage;
run;
          
ods listing;
proc print data=work.frqage;
  title 'Data set created by PROC FREQ';
run;
             
proc tabulate data=sashelp.class 
              out=work.tabage(rename=(N=Count PCTN_0=Percent));
  class age;
  table age,
        n pctn;
run;
             
proc print data=work.tabage;
  title 'Data set created by PROC TABULATE';
  title2 'You can drop or ignore _TYPE_, _TABLE_ and _PAGE_';
run;
      
title;
[/pre]
  
generates the same results as shown at the bottom of this post.
 
cynthia
[pre]
PROC FREQ output dataset:
Data set created by PROC FREQ
                      
Obs    Age    COUNT    PERCENT
 1      11      2      10.5263
 2      12      5      26.3158
 3      13      3      15.7895
 4      14      4      21.0526
 5      15      4      21.0526
 6      16      1       5.2632
                            
------------------------------------------------------------
                             
PROC TABULATE output dataset:
Data set created by PROC TABULATE
You can drop or ignore _TYPE_, _TABLE_ and _PAGE_
                                     
Obs    Age    _TYPE_    _PAGE_    _TABLE_    Count    Percent
 1      11      1          1         1         2      10.5263
 2      12      1          1         1         5      26.3158
 3      13      1          1         1         3      15.7895
 4      14      1          1         1         4      21.0526
 5      15      1          1         1         4      21.0526
 6      16      1          1         1         1       5.2632
[/pre]