<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Creating frequncy Table in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70871#M20409</link>
    <description>I have 2 variables that have values that range from 1 to 5.  I want to create a table that simply lists the variable names across the top, each value down the side (basically a category label) and then the column percentages under each variable for each value.  This should be pretty simple but I can't figure out how to do it.  I tried Proc Tabulate but it keeps asking for another dimiension.  Any help is appreciated.  The output table would look something like this:&lt;BR /&gt;
&lt;BR /&gt;
    Var1      Var2&lt;BR /&gt;
1  18%       24%&lt;BR /&gt;
2  10%       17%&lt;BR /&gt;
3  13%       19%&lt;BR /&gt;
4  21%         9%&lt;BR /&gt;
5  38%   31%</description>
    <pubDate>Wed, 24 Mar 2010 21:09:56 GMT</pubDate>
    <dc:creator>jlcalbre</dc:creator>
    <dc:date>2010-03-24T21:09:56Z</dc:date>
    <item>
      <title>Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70871#M20409</link>
      <description>I have 2 variables that have values that range from 1 to 5.  I want to create a table that simply lists the variable names across the top, each value down the side (basically a category label) and then the column percentages under each variable for each value.  This should be pretty simple but I can't figure out how to do it.  I tried Proc Tabulate but it keeps asking for another dimiension.  Any help is appreciated.  The output table would look something like this:&lt;BR /&gt;
&lt;BR /&gt;
    Var1      Var2&lt;BR /&gt;
1  18%       24%&lt;BR /&gt;
2  10%       17%&lt;BR /&gt;
3  13%       19%&lt;BR /&gt;
4  21%         9%&lt;BR /&gt;
5  38%   31%</description>
      <pubDate>Wed, 24 Mar 2010 21:09:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70871#M20409</guid>
      <dc:creator>jlcalbre</dc:creator>
      <dc:date>2010-03-24T21:09:56Z</dc:date>
    </item>
    <item>
      <title>Re: Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70872#M20410</link>
      <description>This should help:&lt;BR /&gt;
&lt;BR /&gt;
proc tabulate data=SASHELP.CLASS;&lt;BR /&gt;
  var WEIGHT HEIGHT;&lt;BR /&gt;
  class AGE;&lt;BR /&gt;
  table AGE, (WEIGHT HEIGHT)*pctsum;&lt;BR /&gt;
  run;</description>
      <pubDate>Thu, 25 Mar 2010 02:03:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70872#M20410</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2010-03-25T02:03:39Z</dc:date>
    </item>
    <item>
      <title>Re: Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70873#M20411</link>
      <description>That code splits everything across age.  I simply want the values of Var1 and Var2 down the side with their associated frequencies in the table.  I don't want to crosstab them with another variable.</description>
      <pubDate>Thu, 25 Mar 2010 14:35:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70873#M20411</guid>
      <dc:creator>jlcalbre</dc:creator>
      <dc:date>2010-03-25T14:35:53Z</dc:date>
    </item>
    <item>
      <title>Re: Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70874#M20412</link>
      <description>if I understand your request correctly, this should do it&lt;BR /&gt;
&lt;BR /&gt;
data test;                                                                                                                              &lt;BR /&gt;
input Var1 Var2;                                                                                                                        &lt;BR /&gt;
Row=_N_;                                                                                                                                &lt;BR /&gt;
datalines;                                                                                                                              &lt;BR /&gt;
18 24                                                                                                                                   &lt;BR /&gt;
10 17                                                                                                                                   &lt;BR /&gt;
13 19                                                                                                                                   &lt;BR /&gt;
21 9                                                                                                                                    &lt;BR /&gt;
38 31                                                                                                                                   &lt;BR /&gt;
;                                                                                                                                       &lt;BR /&gt;
run;                                                                                                                                &lt;BR /&gt;
                                                                                                                                                                                                                                                                               &lt;BR /&gt;
proc tabulate data=test;                                                                                                                &lt;BR /&gt;
class ROW;                                                                                                                              &lt;BR /&gt;
var var1 var2;                                                                                                                          &lt;BR /&gt;
table row='',var1 var2/rts=3;                                                                                                           &lt;BR /&gt;
run;</description>
      <pubDate>Thu, 25 Mar 2010 15:20:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70874#M20412</guid>
      <dc:creator>Bill</dc:creator>
      <dc:date>2010-03-25T15:20:25Z</dc:date>
    </item>
    <item>
      <title>Re: Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70875#M20413</link>
      <description>Not exactly.  To further explain, I have 500 observations.  The values of var1 and var2 range from 1 to 5.  18% of the values in var1 (n = 90) have a value of 1, 10% (n=50) have a value of 2, etc.  If I used proc freq, I would get 2 separate tables that display the value 1 to 5 and the associated counts and percentages with each value.  I just want to be able to display the same output from proc freq (percetnages or counts) but for 2 or more variables at the same time in the same table.</description>
      <pubDate>Thu, 25 Mar 2010 15:33:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70875#M20413</guid>
      <dc:creator>jlcalbre</dc:creator>
      <dc:date>2010-03-25T15:33:31Z</dc:date>
    </item>
    <item>
      <title>Re: Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70876#M20414</link>
      <description>Well its not a proc freq output but if you want the results in a dataset to tweek as you choose, you can do it this way:&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
%let total=0;&lt;BR /&gt;
&lt;BR /&gt;
data counts;&lt;BR /&gt;
	input var1 var2;&lt;BR /&gt;
	call symput('total',_N_);&lt;BR /&gt;
	datalines;&lt;BR /&gt;
1 2&lt;BR /&gt;
3 4&lt;BR /&gt;
5 1&lt;BR /&gt;
2 3&lt;BR /&gt;
4 5&lt;BR /&gt;
1 5&lt;BR /&gt;
2 3&lt;BR /&gt;
4 1&lt;BR /&gt;
5 2&lt;BR /&gt;
1 3&lt;BR /&gt;
1 5&lt;BR /&gt;
4 2&lt;BR /&gt;
3 1&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
proc sort data=counts;&lt;BR /&gt;
	by var1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data count1 (keep=var count1 pct1);&lt;BR /&gt;
	set counts;&lt;BR /&gt;
	by var1;&lt;BR /&gt;
	if first.var1 then count1=0;&lt;BR /&gt;
	count1+1;&lt;BR /&gt;
	rename var1=var;&lt;BR /&gt;
	if last.var1 then do;&lt;BR /&gt;
		pct1=100*count1/&amp;amp;total;&lt;BR /&gt;
		output;&lt;BR /&gt;
	end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=counts;&lt;BR /&gt;
	by var2;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data count2 (keep=var count2 pct2);&lt;BR /&gt;
	set counts;&lt;BR /&gt;
	by var2;&lt;BR /&gt;
	if first.var2 then count2=0;&lt;BR /&gt;
	count2+1;&lt;BR /&gt;
	rename var2=var;&lt;BR /&gt;
	if last.var2 then do;&lt;BR /&gt;
		pct2=100*count2/&amp;amp;total;&lt;BR /&gt;
		output;&lt;BR /&gt;
	end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data count;&lt;BR /&gt;
	merge count1 count2;&lt;BR /&gt;
	by var;&lt;BR /&gt;
	cntpct1=put(count1,best.)||" ("||put(pct1,4.1)||")";&lt;BR /&gt;
	cntpct2=put(count2,best.)||" ("||put(pct2,4.1)||")";&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc print data=count noobs;&lt;BR /&gt;
	var var cntpct1 cntpct2;&lt;BR /&gt;
run;</description>
      <pubDate>Thu, 25 Mar 2010 18:28:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70876#M20414</guid>
      <dc:creator>RPGarland</dc:creator>
      <dc:date>2010-03-25T18:28:51Z</dc:date>
    </item>
    <item>
      <title>Re: Creating frequncy Table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70877#M20415</link>
      <description>Hi:&lt;BR /&gt;
   If the data are in a slightly different structure, then you can use TABULATE. The program below is based on the previous scenario for the data. With a TYPE variable and a VAL variable, you can get TABULATE to calculate the COLPCTN statistic automatically.&lt;BR /&gt;
 &lt;BR /&gt;
cynthia&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data counts(keep=type val);&lt;BR /&gt;
  infile datalines;&lt;BR /&gt;
  input var1 var2;&lt;BR /&gt;
  type='Var1'; val=var1; output;&lt;BR /&gt;
  type='Var2'; val=var2; output;&lt;BR /&gt;
return;&lt;BR /&gt;
datalines;&lt;BR /&gt;
1 2&lt;BR /&gt;
3 4&lt;BR /&gt;
5 1&lt;BR /&gt;
2 3&lt;BR /&gt;
4 5&lt;BR /&gt;
1 5&lt;BR /&gt;
2 3&lt;BR /&gt;
4 1&lt;BR /&gt;
5 2&lt;BR /&gt;
1 3&lt;BR /&gt;
1 5&lt;BR /&gt;
4 2&lt;BR /&gt;
3 1&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
            &lt;BR /&gt;
/* &lt;BR /&gt;
proc print data=counts;&lt;BR /&gt;
  title 'what is the new structure';&lt;BR /&gt;
run;&lt;BR /&gt;
*/&lt;BR /&gt;
        &lt;BR /&gt;
proc tabulate data=counts;&lt;BR /&gt;
  class type val;&lt;BR /&gt;
  table val all,&lt;BR /&gt;
        type*colpctn;&lt;BR /&gt;
  keylabel colpctn=' ';&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]</description>
      <pubDate>Thu, 25 Mar 2010 18:50:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-frequncy-Table/m-p/70877#M20415</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2010-03-25T18:50:30Z</dc:date>
    </item>
  </channel>
</rss>

