<?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 Re: Proc transpose + Proc tabulate in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368736#M11127</link>
    <description>&lt;PRE&gt;There is a problem in my above code.   use      this :  



data have;
  input (Year1 Year2 Year3 Gender) ($);
  cards;
1A 1A 1A A
3A . . A
. 2A 3A B
2A 3A 3A B
1A . 1A A
;
data temp;
 set have;
 array x{*} $ year:;
 do i=1 to dim(x);
  name=vname(x{i});
  value=x{i};
  if not missing(value) then output;
 end;
 drop i;
run;
proc freq data=temp noprint;
table gender*name*value/out=want sparse list nocum nopercent;
run;&lt;/PRE&gt;</description>
    <pubDate>Tue, 20 Jun 2017 14:20:48 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2017-06-20T14:20:48Z</dc:date>
    <item>
      <title>Proc transpose + Proc tabulate</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368378#M11109</link>
      <description>&lt;P&gt;Hi all!&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I'm confused between to procedure that I have to do. I think first I have to transpose my dataset and then calculate the frequency by proc tabulate, but I have not idea how to do it.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;My dataset is something like this, but a little bit more complicated:&lt;BR /&gt;&lt;BR /&gt;(every row is independient)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE cellspacing="0" cellpadding="0" border="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;Gender&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And I need create something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Gender&lt;/TD&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Var&lt;/TD&gt;&lt;TD&gt;Frequency&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year1&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year2&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Year3&lt;/TD&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's meant tabulate the frequency for every combination of my variables (gender, year and "var").&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank's! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Jun 2017 16:29:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368378#M11109</guid>
      <dc:creator>CarolBarahona</dc:creator>
      <dc:date>2017-06-19T16:29:17Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose + Proc tabulate</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368398#M11110</link>
      <description>&lt;P&gt;Here is a way to do it using a combination of proc format, proc transpose, two&amp;nbsp;datasteps and proc means:&lt;/P&gt;
&lt;PRE&gt;data have;
  input (Year1 Year2 Year3 Gender) ($);
  cards;
1A 1A 1A A
3A . . A
. 2A 3A B
2A 3A 3A B
1A . 1A A
;

proc format;
  value $gender
  'A'='A'
  'B'='B'
  ;
  value $year
  'Year1'='Year1'
  'Year2'='Year2'
  'Year3'='Year3'
  ;
  value $var
  '1A'='1A'
  '2A'='2A'
  '3A'='3A'
  ;
run;

data need;
  set have;
  recnum=_n_;
run;

proc transpose data=need out=need
   (drop=recnum rename=(_name_=year col1=Var));
  var Year1 Year2 Year3;
  by recnum Gender;
run;

data need;
  set need;
  count=1;
run;

PROC MEANS DATA=need completetypes nway NOPRINT;
  FORMAT gender $gender. year $year. var $var.;
  CLASS gender year var/preloadfmt;
  VAR_count;
  OUTPUT OUT=want (drop=_ :)  N=count;
RUN;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Jun 2017 17:18:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368398#M11110</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-19T17:18:17Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose + Proc tabulate</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368731#M11125</link>
      <description>&lt;PRE&gt;
data have;
  input (Year1 Year2 Year3 Gender) ($);
  cards;
1A 1A 1A A
3A . . A
. 2A 3A B
2A 3A 3A B
1A . 1A A
;
data temp;
 set have;
 array x{*} $ _character_;
 do i=1 to dim(x);
  name=vname(x{i});
  value=x{i};
  if not missing(value) then output;
 end;
 drop i;
run;
proc freq data=temp noprint;
table name*value/out=want sparse list nocum nopercent;
run;&lt;/PRE&gt;</description>
      <pubDate>Tue, 20 Jun 2017 14:12:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368731#M11125</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-06-20T14:12:56Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose + Proc tabulate</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368736#M11127</link>
      <description>&lt;PRE&gt;There is a problem in my above code.   use      this :  



data have;
  input (Year1 Year2 Year3 Gender) ($);
  cards;
1A 1A 1A A
3A . . A
. 2A 3A B
2A 3A 3A B
1A . 1A A
;
data temp;
 set have;
 array x{*} $ year:;
 do i=1 to dim(x);
  name=vname(x{i});
  value=x{i};
  if not missing(value) then output;
 end;
 drop i;
run;
proc freq data=temp noprint;
table gender*name*value/out=want sparse list nocum nopercent;
run;&lt;/PRE&gt;</description>
      <pubDate>Tue, 20 Jun 2017 14:20:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Proc-transpose-Proc-tabulate/m-p/368736#M11127</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-06-20T14:20:48Z</dc:date>
    </item>
  </channel>
</rss>

