<?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 How to sort variable like this? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49834#M13528</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How about:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data class;
input x1-x4;
cards;
1 2 4 6
2 3 5 6
3 5 7 8
6 8 9 2
3 4 6 2
2 1 4 8
2 5 7 9
;
run;



%let x1=x1;


proc corr data=class outp=x(where=(upcase(_name_)="%upcase(&amp;amp;x1)"));
 var x1-x4 ;
run;
data xx(keep=name value);
 set x(keep=x:);
 array _x{*} x: ;
 do i=1 to dim(_x);
&amp;nbsp;&amp;nbsp; name=vname(_x{i});
&amp;nbsp;&amp;nbsp; value=_x{i};
&amp;nbsp;&amp;nbsp; output;
 end;
run;
proc sort data=xx;by descending value;run;
proc sql;
 select name into : list separated by ' ' from xx;
quit;

proc corr data=class outp=want;
 var &amp;amp;list ;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Feb 2012 10:11:25 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2012-02-10T10:11:25Z</dc:date>
    <item>
      <title>How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49833#M13527</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following is one correlation matrix of x1-x6. I want to sort them as follows:&lt;/P&gt;&lt;P&gt;First, set x1 as the first variable. &lt;/P&gt;&lt;P&gt;Second, find the variable whose correlation coefficent with x1 is the largest (except x1),and set it as the second variale,e.g...x(2);&lt;/P&gt;&lt;P&gt;Third, find the variable whose correlation coefficent with x(2) is the largest,and set it as the third variale,e.g...x(3);&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;Finally, sort all variables in such sequence. All variables is sorted by their maximal correlation coefficent with before it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; I can sort x1-x6 by hand. But if I have 100 variables, how to sort them in sas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="width: 448px;"&gt;&lt;TBODY&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt; width: 48pt;" width="64"&gt;&lt;A name="RANGE!A1:G7"&gt;NAME&lt;/A&gt;&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x1&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x2&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x3&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x4&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x5&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x6&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt;"&gt;x1&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.795283&lt;/TD&gt;&lt;TD align="right"&gt;0.648228&lt;/TD&gt;&lt;TD align="right"&gt;0.702434&lt;/TD&gt;&lt;TD align="right"&gt;0.410562&lt;/TD&gt;&lt;TD align="right"&gt;0.67573&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt;"&gt;x2&lt;/TD&gt;&lt;TD align="right"&gt;0.795283&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.785185&lt;/TD&gt;&lt;TD align="right"&gt;0.852621&lt;/TD&gt;&lt;TD align="right"&gt;0.517509&lt;/TD&gt;&lt;TD align="right"&gt;0.8671&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt;"&gt;x3&lt;/TD&gt;&lt;TD align="right"&gt;0.648228&lt;/TD&gt;&lt;TD align="right"&gt;0.785185&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.711466&lt;/TD&gt;&lt;TD align="right"&gt;0.50897&lt;/TD&gt;&lt;TD align="right"&gt;0.695645&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt;"&gt;x4&lt;/TD&gt;&lt;TD align="right"&gt;0.702434&lt;/TD&gt;&lt;TD align="right"&gt;0.852621&lt;/TD&gt;&lt;TD align="right"&gt;0.711466&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.457522&lt;/TD&gt;&lt;TD align="right"&gt;0.757802&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt;"&gt;x5&lt;/TD&gt;&lt;TD align="right"&gt;0.410562&lt;/TD&gt;&lt;TD align="right"&gt;0.517509&lt;/TD&gt;&lt;TD align="right"&gt;0.50897&lt;/TD&gt;&lt;TD align="right"&gt;0.457522&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.485006&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 12.0pt;"&gt;&lt;TD height="16" style="height: 12.0pt;"&gt;x6&lt;/TD&gt;&lt;TD align="right"&gt;0.67573&lt;/TD&gt;&lt;TD align="right"&gt;0.8671&lt;/TD&gt;&lt;TD align="right"&gt;0.695645&lt;/TD&gt;&lt;TD align="right"&gt;0.757802&lt;/TD&gt;&lt;TD align="right"&gt;0.485006&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Feb 2012 07:41:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49833#M13527</guid>
      <dc:creator>MikeTurner</dc:creator>
      <dc:date>2012-02-09T07:41:32Z</dc:date>
    </item>
    <item>
      <title>How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49834#M13528</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How about:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data class;
input x1-x4;
cards;
1 2 4 6
2 3 5 6
3 5 7 8
6 8 9 2
3 4 6 2
2 1 4 8
2 5 7 9
;
run;



%let x1=x1;


proc corr data=class outp=x(where=(upcase(_name_)="%upcase(&amp;amp;x1)"));
 var x1-x4 ;
run;
data xx(keep=name value);
 set x(keep=x:);
 array _x{*} x: ;
 do i=1 to dim(_x);
&amp;nbsp;&amp;nbsp; name=vname(_x{i});
&amp;nbsp;&amp;nbsp; value=_x{i};
&amp;nbsp;&amp;nbsp; output;
 end;
run;
proc sort data=xx;by descending value;run;
proc sql;
 select name into : list separated by ' ' from xx;
quit;

proc corr data=class outp=want;
 var &amp;amp;list ;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Feb 2012 10:11:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49834#M13528</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-02-10T10:11:25Z</dc:date>
    </item>
    <item>
      <title>How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49835#M13529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Sounds like you are looking for output like that produced by the PROC CORR statement option BEST=.&amp;nbsp; Check the documentation.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Feb 2012 12:49:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49835#M13529</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-02-10T12:49:39Z</dc:date>
    </item>
    <item>
      <title>How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49836#M13530</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. Greatly appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but it seems not what&amp;nbsp; I want. Just look at the data I presented above.&lt;/P&gt;&lt;P&gt;We will set x1 x2 as the first two variables for sure. For the third one,&amp;nbsp; If using your program, it will be x4. But the one which has maximal &lt;SPAN style="background-color: #eef4f9;"&gt;correlation coefficent with x2 is x6, not x4.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;Any suggestion?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Feb 2012 04:16:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49836#M13530</guid>
      <dc:creator>MikeTurner</dc:creator>
      <dc:date>2012-02-13T04:16:53Z</dc:date>
    </item>
    <item>
      <title>How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49837#M13531</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is the following what you are trying to do?:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input NAME $ x1-x6;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.795283&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.648228&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.702434&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.410562&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.67573&lt;/P&gt;&lt;P&gt;x2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.795283&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.785185&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.852621&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.517509&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.8671&lt;/P&gt;&lt;P&gt;x3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.648228&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.785185&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.711466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.50897&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.695645&lt;/P&gt;&lt;P&gt;x4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.702434&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.852621&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.711466&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.457522&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.757802&lt;/P&gt;&lt;P&gt;x5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.410562&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.517509&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.50897&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.457522&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.485006&lt;/P&gt;&lt;P&gt;x6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.67573&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.8671&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.695645&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.757802&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.485006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (keep=v: corr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have (rename=(name=var1));&lt;/P&gt;&lt;P&gt;&amp;nbsp; array corrs(*) x1-x6;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to 6;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i ne _n_ then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var2=catt('x',i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; corr=corrs(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by var1 descending corr;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Feb 2012 04:44:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49837#M13531</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-02-13T04:44:39Z</dc:date>
    </item>
    <item>
      <title>How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49838#M13532</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It's very close to what I want.&lt;/P&gt;&lt;P&gt;I'll set x1 as 1st. x2 has a &lt;SPAN style="background-color: #eef4f9;"&gt;maximal &lt;/SPAN&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;correlation coefficent with x1. So x2 will be the second. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;x6 has a &lt;SPAN style="background-color: #eef4f9;"&gt;maximal &lt;/SPAN&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;correlation coefficent with x2. So x6 will be the third.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;x2&lt;/SPAN&gt; has a &lt;SPAN style="background-color: #eef4f9;"&gt;maximal &lt;/SPAN&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;correlation coefficent with x6, But x2 is already in the sequence (2nd). So we&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;will choose x4, which has a second maximal &lt;SPAN style="background-color: #eef4f9;"&gt;correlation coefficent with x6, as the fourth one in the squence&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;................&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;and so..............&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #eef4f9;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Feb 2012 05:51:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49838#M13532</guid>
      <dc:creator>MikeTurner</dc:creator>
      <dc:date>2012-02-13T05:51:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to sort variable like this?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49839#M13533</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oh. I don't realize that your problem are so complicated.&lt;/P&gt;&lt;P&gt;See the following code is whether what you need. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data class;
input x1-x4;
cards;
1 2 4 6
2 3 5 6
3 5 7 8
6 8 9 2
3 4 6 2
2 1 4 8
2 5 7 9
;
run;



%let x1=x2;


proc corr data=class outp=x(where=(_name_ is not missing)) noprint;
 var&amp;nbsp; x: ;
run;

data xx(keep=path value);
 set x;
 length path $ 40;
 array _x{*} x: ;
 do i=1 to dim(_x);
&amp;nbsp;&amp;nbsp; if _x{i} ne 1 then do;
&amp;nbsp;&amp;nbsp;&amp;nbsp; path=catx(' ',_name_,vname(_x{i})) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; value=_x{i};
&amp;nbsp;&amp;nbsp; output;
&amp;nbsp;&amp;nbsp; end;
 end;
 if _n_ eq 1 then call symputx('num',dim(_x));
run;


data _null_;
if 0 then set xx;
 declare hash ha(hashexp:10,dataset:'xx');
 declare hiter hi('ha');
&amp;nbsp; ha.definekey('path');
&amp;nbsp; ha.definedata('path','value');
&amp;nbsp; ha.definedone();
 length list $ 4000;
 list="&amp;amp;x1";&amp;nbsp; 
 do i=1 to &amp;amp;num-1;
&amp;nbsp; max=.;
&amp;nbsp; do while(hi.next()=0); 
&amp;nbsp;&amp;nbsp; if (strip(scan(list,-1,' ')) eq strip(scan(path,1,' ')) ) and not index(list,strip(scan(path,-1,' ')))&amp;nbsp; then do;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if value gt max then do;temp=strip(scan(path,-1,' '));max=value;end;
&amp;nbsp;&amp;nbsp; end;
&amp;nbsp; end;
&amp;nbsp; list=catx(' ',list,temp); 
end;
 call symputx('list',list);
run;

%put &amp;amp;num &amp;amp;list;

proc corr data=class outp=want(where=(_name_ is not missing)) noprint;
 var&amp;nbsp; &amp;amp;list ;
run;





&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tian.Kong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Feb 2012 11:16:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-sort-variable-like-this/m-p/49839#M13533</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-02-13T11:16:01Z</dc:date>
    </item>
  </channel>
</rss>

