<?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 and sort columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458978#M284549</link>
    <description>Thank Ksharp for your response. Your solution works but it doesn't display the months in descending order such as Mar18, Feb18, Jan18, Dec17... is there a way to sort the months in the tabulate proc?</description>
    <pubDate>Tue, 01 May 2018 14:00:26 GMT</pubDate>
    <dc:creator>Cbob03</dc:creator>
    <dc:date>2018-05-01T14:00:26Z</dc:date>
    <item>
      <title>transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458886#M284546</link>
      <description>&lt;P&gt;&amp;nbsp;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the below data example.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Data aa1;&lt;BR /&gt;input rank score month $5.;&lt;BR /&gt;infile cards;&lt;BR /&gt;cards;&lt;BR /&gt;1 0.45 MAR18&lt;BR /&gt;2 0.98 MAR18&lt;BR /&gt;3 0.76 MAR18&lt;BR /&gt;1 0.96 FEB18&lt;BR /&gt;2 0.68 FEB18&lt;BR /&gt;3 0.55 FEB18&lt;BR /&gt;1 0.61 JAN18&lt;BR /&gt;2 0.58 JAN18&lt;BR /&gt;3 0.45 JAN18&lt;/P&gt;&lt;P&gt;4 0.73 JAN18&lt;/P&gt;&lt;P&gt;5 0.40 JAN18&lt;BR /&gt;1 0.21 DEC17&lt;BR /&gt;2 0.32 DEC17&lt;BR /&gt;3 0.49 DEC17&lt;/P&gt;&lt;P&gt;4 0.86 DEC17&lt;BR /&gt;;&lt;BR /&gt;Run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want the output to look as below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Rank&lt;/TD&gt;&lt;TD&gt;MAR18&lt;/TD&gt;&lt;TD&gt;FEB18&lt;/TD&gt;&lt;TD&gt;JAN18&lt;/TD&gt;&lt;TD&gt;DEC17&lt;/TD&gt;&lt;TD&gt;NOV17&lt;/TD&gt;&lt;TD&gt;OCT17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;45.00%&lt;/TD&gt;&lt;TD&gt;96.00%&lt;/TD&gt;&lt;TD&gt;61.00%&lt;/TD&gt;&lt;TD&gt;21.00%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;98.00%&lt;/TD&gt;&lt;TD&gt;68.00%&lt;/TD&gt;&lt;TD&gt;58.00%&lt;/TD&gt;&lt;TD&gt;32.00%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;76.00%&lt;/TD&gt;&lt;TD&gt;55.00%&lt;/TD&gt;&lt;TD&gt;45.00%&lt;/TD&gt;&lt;TD&gt;49.00%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;73.00%&lt;/TD&gt;&lt;TD&gt;86.00%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;40.00%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;Basically I need help with transposing the raw data as above(appreciate if you&amp;nbsp;could show me a method other than proc transpose). I tried using proc transpose but where I struggle was arranging/sorting the column names by descending yyyymm. My data goes all the way back to Feb17 and every month I will be adding a new month. For instance, in May18 my month column range will be May18-Feb17. &lt;SPAN&gt;Any help is much appreciated!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 01 May 2018 02:36:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458886#M284546</guid>
      <dc:creator>Cbob03</dc:creator>
      <dc:date>2018-05-01T02:36:32Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458893#M284547</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data aa1;
input rank score month $5.;
infile cards;
cards;
1 0.45 MAR18
2 0.98 MAR18
3 0.76 MAR18
1 0.96 FEB18
2 0.68 FEB18
3 0.55 FEB18
1 0.61 JAN18
2 0.58 JAN18
3 0.45 JAN18
4 0.73 JAN18
5 0.40 JAN18
1 0.21 DEC17
2 0.32 DEC17
3 0.49 DEC17
4 0.86 DEC17
;
Run;
proc sort;
by rank;
run;

proc transpose data=aa1 out=_aa1;
by rank;
var score;
id month;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 01 May 2018 03:56:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458893#M284547</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-05-01T03:56:49Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458928#M284548</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data aa1;
input rank score month monyy5.;
format month monyy5.;
infile cards;
cards;
1 0.45 MAR18
2 0.98 MAR18
3 0.76 MAR18
1 0.96 FEB18
2 0.68 FEB18
3 0.55 FEB18
1 0.61 JAN18
2 0.58 JAN18
3 0.45 JAN18
4 0.73 JAN18
5 0.40 JAN18
1 0.21 DEC17
2 0.32 DEC17
3 0.49 DEC17
4 0.86 DEC17
;
Run;
proc tabulate data=aa1;
class rank month;
var score;
table rank,month*score=''*sum=''*f=percent8.2;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 01 May 2018 08:32:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458928#M284548</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-05-01T08:32:06Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458978#M284549</link>
      <description>Thank Ksharp for your response. Your solution works but it doesn't display the months in descending order such as Mar18, Feb18, Jan18, Dec17... is there a way to sort the months in the tabulate proc?</description>
      <pubDate>Tue, 01 May 2018 14:00:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/458978#M284549</guid>
      <dc:creator>Cbob03</dc:creator>
      <dc:date>2018-05-01T14:00:26Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459001#M284550</link>
      <description>&lt;PRE&gt;Data work.aa1;
input rank score month $5.;
datemonth= input(cats('01',month),date7.);
format datemonth monyy5.;
infile cards;
cards;
1 0.45 MAR18
2 0.98 MAR18
3 0.76 MAR18
1 0.96 FEB18
2 0.68 FEB18
3 0.55 FEB18
1 0.61 JAN18
2 0.58 JAN18
3 0.45 JAN18

4 0.73 JAN18

5 0.40 JAN18
1 0.21 DEC17
2 0.32 DEC17
3 0.49 DEC17

4 0.86 DEC17
;
Run;
proc sort data=work.aa1;
  by rank descending datemonth;
run;
proc tabulate data=work.aa1;
   class rank;
   class datemonth/order=data;
   var score;
   table rank=' '*score=' '*max=' '*f=percent8.2,
         datemonth=' '
         / box='Rank' row=float misstext=' '
   ;
run;
&lt;/PRE&gt;
&lt;P&gt;Since your example data doesn't have any "percent" in the decimal range do you actually want to display all those .00% values? If not remove the .2 in the percent8.2 format&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 01 May 2018 15:20:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459001#M284550</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-05-01T15:20:30Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459188#M284551</link>
      <description>&lt;P&gt;To reorder variables I have generally specified the order in a LENGTH or RETAIN statement before the SET statement. You can't do his in the proc transpose itself, but you can in a follow up data step.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using proc sql's SELECT INTO you can create a macro variable that lists the months in MONYY format in date order, and use that macro variable in a LENGTH or RETAIN statement to set the variable order.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
select distinct
	input(month,monyy.) as month_var_name format=monyy.
into
	: month_vars separated by ' '
from
	original_data
order by
	month_var_name
;quit;

data transposed_reordered;
length Rank $5 &amp;amp;month_vars 8;
set transposed;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 05:46:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459188#M284551</guid>
      <dc:creator>JChambo</dc:creator>
      <dc:date>2018-05-02T05:46:05Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459276#M284552</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think should use better.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;   class rank;
   class month/order=internal descending;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 12:28:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459276#M284552</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-05-02T12:28:46Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and sort columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459400#M284553</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think should use better.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;   class rank;
   class month/order=internal descending;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Agreed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 May 2018 16:28:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-sort-columns/m-p/459400#M284553</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-05-02T16:28:19Z</dc:date>
    </item>
  </channel>
</rss>

