<?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: transpose multiple columns and getting output in columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339906#M77600</link>
    <description>&lt;P&gt;I tried the same. Transposed and then merged. I was wondering if there is any other option.&lt;/P&gt;</description>
    <pubDate>Fri, 10 Mar 2017 07:12:37 GMT</pubDate>
    <dc:creator>deega</dc:creator>
    <dc:date>2017-03-10T07:12:37Z</dc:date>
    <item>
      <title>transpose multiple columns and getting output in columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339891#M77592</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I want to transpose the following dataset&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;d&lt;/TD&gt;&lt;TD&gt;amt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x001&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x002&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x002&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x002&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x003&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x003&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x004&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x005&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x005&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x005&lt;/TD&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x005&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x005&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;1000&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 am trying to get following output&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;d1&lt;/TD&gt;&lt;TD&gt;d2&lt;/TD&gt;&lt;TD&gt;d3&lt;/TD&gt;&lt;TD&gt;d4&lt;/TD&gt;&lt;TD&gt;d5&lt;/TD&gt;&lt;TD&gt;a1&lt;/TD&gt;&lt;TD&gt;a2&lt;/TD&gt;&lt;TD&gt;a3&lt;/TD&gt;&lt;TD&gt;a4&lt;/TD&gt;&lt;TD&gt;a5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x001&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x002&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x003&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x004&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x005&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1000&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, if I write the following program I get values of different columns in different rows.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc transpose data=Y out=check &amp;nbsp;;&lt;BR /&gt;id ID;&lt;BR /&gt;var d amt;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 05:50:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339891#M77592</guid>
      <dc:creator>deega</dc:creator>
      <dc:date>2017-03-10T05:50:59Z</dc:date>
    </item>
    <item>
      <title>Re: transpose multiple columns and getting output in columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339899#M77595</link>
      <description>&lt;P&gt;I think you need to do transposes and then do a merge of those two datasets.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or you can use a really handy macro written by some users on here called 'A better way to flip'&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset" target="_blank"&gt;http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 06:52:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339899#M77595</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-03-10T06:52:53Z</dc:date>
    </item>
    <item>
      <title>Re: transpose multiple columns and getting output in columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339900#M77596</link>
      <description>&lt;P&gt;I think you need to do transposes and then do a merge of those two datasets.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or you can use a really handy macro written by some users on here called 'A better way to flip'&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset" target="_blank"&gt;http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 06:52:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339900#M77596</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-03-10T06:52:55Z</dc:date>
    </item>
    <item>
      <title>Re: transpose multiple columns and getting output in columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339906#M77600</link>
      <description>&lt;P&gt;I tried the same. Transposed and then merged. I was wondering if there is any other option.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 07:12:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339906#M77600</guid>
      <dc:creator>deega</dc:creator>
      <dc:date>2017-03-10T07:12:37Z</dc:date>
    </item>
    <item>
      <title>Re: transpose multiple columns and getting output in columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339923#M77612</link>
      <description>&lt;PRE&gt;
1)
Yes. there are another option. MERGE skill proposed by Me,Arthur,Matt.


http://support.sas.com/resources/papers/proceedings15/2785-2015.pdf


data have;
infile cards expandtabs truncover;
input id $ d	amt;
cards;
x001	12	1000
x002	10	1000
x002	11	2000
x002	12	3000
x003	13	1000
x003	15	3000
x004	23	1000
x005	13	4000
x005	14	2000
x005	16	3000
x005	17	4000
x005	18	1000
;
run;
data have;
 set have;
 by id;
 if first.id then n=0;
 n+1;
run;
proc sql;
select distinct catt('have(where=(n=',n,') rename=(d=d',n,' amt=amt',n,'))')
 into : merge separated by ' '
  from have;
quit;

data want;
 merge &amp;amp;merge;
 by id;
 drop n;
run;
proc print;run;



2) Or another option is IDGROUPS


data have;
infile cards expandtabs truncover;
input id $ d	amt;
cards;
x001	12	1000
x002	10	1000
x002	11	2000
x002	12	3000
x003	13	1000
x003	15	3000
x004	23	1000
x005	13	4000
x005	14	2000
x005	16	3000
x005	17	4000
x005	18	1000
;
run;
proc sql;
select max(n) into :n 
 from 
 (select count(*) as n from have group by id);
quit;
proc summary data=have;
by id;
output out=want idgroups(out[&amp;amp;n] (d amt)=);
run;
proc print;run;


&lt;/PRE&gt;</description>
      <pubDate>Fri, 10 Mar 2017 08:26:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-multiple-columns-and-getting-output-in-columns/m-p/339923#M77612</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-03-10T08:26:05Z</dc:date>
    </item>
  </channel>
</rss>

