<?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: How to convert groups in rows to seperate columns? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574218#M162209</link>
    <description>For display or data?&lt;BR /&gt;&lt;BR /&gt;proc freq data=have;&lt;BR /&gt;table hospital*cancer;&lt;BR /&gt;weight data;&lt;BR /&gt;run;&lt;BR /&gt;</description>
    <pubDate>Wed, 17 Jul 2019 15:28:09 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2019-07-17T15:28:09Z</dc:date>
    <item>
      <title>How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574075#M162136</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cancer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bowel cancer&amp;nbsp;.&amp;nbsp; 2&lt;BR /&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bowel cancer&amp;nbsp;.&amp;nbsp; 5&lt;BR /&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bowel cancer&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;BR /&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Breast cancer&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;BR /&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Breast cancer&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hi I'm just wondering how to convert the above output to the following in SAS or Proc SQL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bowel Cancer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Breast Cancer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;BR /&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;Albany Hospital&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2019 07:06:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574075#M162136</guid>
      <dc:creator>kenjichan1212</dc:creator>
      <dc:date>2019-07-17T07:06:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574077#M162138</link>
      <description>&lt;P&gt;How do you determine which Data value go where? For example, why is Bowel Cancer=2 and Breast Cancer=7 in the first row of your desired output?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is it because they appear first in each group?&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2019 07:11:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574077#M162138</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-07-17T07:11:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574118#M162161</link>
      <description>&lt;P&gt;May be its not the most elegant way to do it, but you may try:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1) select all cancer types to create a list of the new variables and&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; to create code for assigning the data value to the the appropriate variable:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;&lt;STRONG&gt;options source source2 symbolgen;&lt;/STRONG&gt;&lt;BR /&gt;proc sql;
   create table types as select distinct cancer
   from have;
quit;

filename code tmp;
data _NULL_;
  set types end=eof;
       length var_list $1000 var_name $32 a_line $120; /* adapt length to needs */
       retain var_list ' ';
       var_name = translate(cancer,'_',' ');
       var_list = catx(' ',var_list,var_name);

      file code;
      a_line = 'if cancer = " ' || trim(cancer) || ' then ' ||
                    trim(var_name) || '  = data; else ';
      put a_line'

      if eof then do;&lt;BR /&gt;         put ';';&lt;BR /&gt;         call symput('var_list' , trim(var_list));&lt;BR /&gt;      end;
run;

data want;
     keep hospital &amp;amp;var_list;
 set have;
     %include code;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;code is not tested. In case of issues post your code and the full log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2019 10:20:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574118#M162161</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2019-07-17T10:20:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574138#M162168</link>
      <description>&lt;P&gt;Merge Skill proposed by me,Matt,Art.C .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/resources/papers/proceedings15/2785-2015.pdf" target="_blank"&gt;http://support.sas.com/resources/papers/proceedings15/2785-2015.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input  Hospital   &amp;amp; $40.    Cancer  &amp;amp; $40.      Data;
cards;
Albany Hospital     Bowel cancer  2
Albany Hospital     Bowel cancer   5
Albany Hospital     Bowel cancer    6
Albany Hospital     Breast cancer    7
Albany Hospital     Breast cancer    5
;
proc freq data=have noprint;
table cancer/out=key nopercent;
run;

data _null_;
 set key end=last;
 if _n_=1 then call execute('data want; merge ');
 call execute(catt('have(where=(cancer="',cancer,'") 
 rename=(data=',compress(cancer),'))'));
 if last then call execute(';by hospital;output;call missing(of _all_);drop cancer;run;');
 run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 17 Jul 2019 11:56:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574138#M162168</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-07-17T11:56:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574139#M162169</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/280733"&gt;@kenjichan1212&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is one of the classic case to apply double transpose or perhaps&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;&amp;nbsp;'s macro transpose. Though I love Art,&amp;nbsp; I haven't had the time to read Art's macro yet to feel the intuition before i start applying but here is the double transpose method&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input Hospital        &amp;amp; $30.            Cancer     &amp;amp; $30.           Data;
cards;
Albany Hospital     Bowel cancer        2
Albany Hospital     Bowel cancer   5
Albany Hospital     Bowel cancer    6
Albany Hospital     Breast cancer    7
Albany Hospital     Breast cancer    5
;

proc transpose data=have out=temp;
by hospital cancer ;
var data;
run;

proc transpose data=temp out=want(drop=_name_);
by hospital  ;
var col:;
id cancer;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2019 11:59:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574139#M162169</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-07-17T11:59:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574174#M162191</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp;: No, the %transpose macro wasn't designed for this specific type of transpose, but could be used if prefaced by a data step that assigned the desired order. The following would produce the same output file as both your and&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;'s proposed code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data need;
  set have;
  by Hospital Cancer;
  if first.Cancer then recnum=1;
  else recnum+1;
run;

%transpose(data=need,out=want(drop=recnum),by=hospital recnum,
 id=cancer,convertid=yes,use_varname=no,var=data,sort=yes)
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2019 13:33:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574174#M162191</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2019-07-17T13:33:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574202#M162204</link>
      <description>&lt;P&gt;Just make a new variable so that you have unique keys.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input Hospital &amp;amp;:$30. Cancer &amp;amp;:$32. DataVar;
cards;
Albany Hospital     Bowel cancer    2
Albany Hospital     Bowel cancer    5
Albany Hospital     Bowel cancer    6
Albany Hospital     Breast cancer    7
Albany Hospital     Breast cancer    5
;

data fix;
  set have;
  by hospital cancer ;
  if first.cancer then row=0;
  row +1;
run;
proc sort; by hospital row; run;

proc transpose data=fix ;
  by hospital row;
  id cancer;
  var datavar;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;                                            Bowel_    Breast_
Obs       Hospital        row    _NAME_     cancer     cancer

 1     Albany Hospital     1     DataVar       2         7
 2     Albany Hospital     2     DataVar       5         5
 3     Albany Hospital     3     DataVar       6         .
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2019 14:56:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574202#M162204</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-07-17T14:56:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to convert groups in rows to seperate columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574218#M162209</link>
      <description>For display or data?&lt;BR /&gt;&lt;BR /&gt;proc freq data=have;&lt;BR /&gt;table hospital*cancer;&lt;BR /&gt;weight data;&lt;BR /&gt;run;&lt;BR /&gt;</description>
      <pubDate>Wed, 17 Jul 2019 15:28:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-convert-groups-in-rows-to-seperate-columns/m-p/574218#M162209</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-07-17T15:28:09Z</dc:date>
    </item>
  </channel>
</rss>

