<?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: row sorting in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103368#M28958</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There may be a smarter way, but you can use something like this... still some coded is needed for tied values..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input id a b c d;&lt;/P&gt;&lt;P&gt;cards ;&lt;/P&gt;&lt;P&gt;1 2 3 4 .&lt;/P&gt;&lt;P&gt;2 . 5 2 5&lt;/P&gt;&lt;P&gt;3 . . . .&lt;/P&gt;&lt;P&gt;4 . 3 2 .&lt;/P&gt;&lt;P&gt;5 . . 1 7&lt;/P&gt;&lt;P&gt;6 1 1 . .&lt;/P&gt;&lt;P&gt;7 6 5 4 1&lt;/P&gt;&lt;P&gt;; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _vars a b c d;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _varN $ x1-x4;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do over _varN;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _vars ne . then _varN= VNAME (_vars);&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;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var a b c d;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var X1-X4; &lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge temp1 temp2 (rename=(col1=col2));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id col1; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=a out=temp3 (drop=_NAME_) prefix=col;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var col2; by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data temp3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set temp3; pattern=catx ("_",OF col1-col4);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print ;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 Oct 2013 23:09:11 GMT</pubDate>
    <dc:creator>Altal</dc:creator>
    <dc:date>2013-10-03T23:09:11Z</dc:date>
    <item>
      <title>row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103363#M28953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could anyone help me to figure out this problem? Thanks in advance!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My original dataset is like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="99" style="border: 1px solid #000000; width: 402px; height: 39px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;ID&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;A&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;B&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;C&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;9&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;4&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'd like to create a new variable that indicates the order pattern from the minimum to the maximum. So the new dataset should look like this:&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="149" style="border: 1px solid #000000; width: 720px; height: 138px;" width="718"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;ID&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;A&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;B&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;C&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Pattern&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;4&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;A_B_C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;C_A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;9&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;C_B_A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;4&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any suggestion is appreciated! Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Oct 2013 19:09:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103363#M28953</guid>
      <dc:creator>s100</dc:creator>
      <dc:date>2013-10-03T19:09:36Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103364#M28954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A couple of details may need some clarification. Is this for only 3 variables or do you need something that works for an abitrary number of values? Are the actual variable names A B C or are you using a placeholder names for example? This is somewhat important as the length of Pattern needs to be set large enough to hold the longest possible string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, rules for tie breaking? What is the result if A and C are the same value? What if all variables have the same value? And do you want an actual period '.' or a missing for pattern when all values are missing?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Oct 2013 19:49:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103364#M28954</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2013-10-03T19:49:19Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103365#M28955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ballardw is right; more info is helpful... sounds like you want to retain names of nonmissing variables; maybe&amp;nbsp; you can build on this...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id a b c d;&lt;/P&gt;&lt;P&gt;cards ;&lt;/P&gt;&lt;P&gt;1 2 3 4 .&lt;/P&gt;&lt;P&gt;2 . 5 2 5&lt;/P&gt;&lt;P&gt;3 . . . .&lt;/P&gt;&lt;P&gt;4 . 3 2 .&lt;/P&gt;&lt;P&gt;5 . . 1 7&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _vars a b c d;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _varN $ x1-x4;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do over _varN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _vars ne . then _varN= VNAME (_vars);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pattern=catx ("_",OF X1-x4);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print ;&lt;/P&gt;&lt;P&gt;var id a b c d pattern;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Oct 2013 21:03:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103365#M28955</guid>
      <dc:creator>Altal</dc:creator>
      <dc:date>2013-10-03T21:03:33Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103366#M28956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ballardw, thanks for bring these to my attention! You are absolutely right. I just made this as a simple example. In my real dataset, I have 8 variables and the actual names are 2-4 letters. To make the 'pattern' variable short, I could use numbers to replace the letters, say if pattern is A_B_C then I could use 1_2_3 instead.&lt;/P&gt;&lt;P style="font-style: inherit; font-family: inherit;"&gt;&lt;/P&gt;&lt;P style="font-style: inherit; font-family: inherit;"&gt;And for the equal value, if A, B, and C are 1, 1, and 2 respectively, then the pattern could be AB_C.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Oct 2013 21:47:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103366#M28956</guid>
      <dc:creator>s100</dc:creator>
      <dc:date>2013-10-03T21:47:28Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103367#M28957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Altal,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your answer. It is helpful. The new variable 'pattern' you make indicates the pattern of present/absent. But how to make the 'pattern' variable reflect the order?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Oct 2013 21:57:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103367#M28957</guid>
      <dc:creator>s100</dc:creator>
      <dc:date>2013-10-03T21:57:41Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103368#M28958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There may be a smarter way, but you can use something like this... still some coded is needed for tied values..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input id a b c d;&lt;/P&gt;&lt;P&gt;cards ;&lt;/P&gt;&lt;P&gt;1 2 3 4 .&lt;/P&gt;&lt;P&gt;2 . 5 2 5&lt;/P&gt;&lt;P&gt;3 . . . .&lt;/P&gt;&lt;P&gt;4 . 3 2 .&lt;/P&gt;&lt;P&gt;5 . . 1 7&lt;/P&gt;&lt;P&gt;6 1 1 . .&lt;/P&gt;&lt;P&gt;7 6 5 4 1&lt;/P&gt;&lt;P&gt;; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _vars a b c d;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _varN $ x1-x4;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do over _varN;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _vars ne . then _varN= VNAME (_vars);&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;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var a b c d;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var X1-X4; &lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge temp1 temp2 (rename=(col1=col2));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id col1; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=a out=temp3 (drop=_NAME_) prefix=col;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var col2; by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data temp3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set temp3; pattern=catx ("_",OF col1-col4);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print ;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Oct 2013 23:09:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103368#M28958</guid>
      <dc:creator>Altal</dc:creator>
      <dc:date>2013-10-03T23:09:11Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103369#M28959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Altal,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your codes are very helpful! I still have one question about the equal value, for instance, id=2 the pattern should be 'c_bd' or 'c_db', because b=d=5. Is there an easier way to deal with that? Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Oct 2013 19:37:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103369#M28959</guid>
      <dc:creator>s100</dc:creator>
      <dc:date>2013-10-04T19:37:15Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103370#M28960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would probably take the obvious approach. &lt;/P&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; have;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id a b c d;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;cards&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffc0;"&gt;1 2 3 4 .&lt;BR /&gt;2 . 5 2 5&lt;BR /&gt;3 . . . .&lt;BR /&gt;4 . 3 2 .&lt;BR /&gt;5 . . 1 7&lt;BR /&gt;6 1 1 . .&lt;BR /&gt;7 6 5 4 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;;;;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;transpose&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=have &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=have2;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;rank&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=have2 &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=ranks &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;ties&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=low;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; col1;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;sort&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=ranks;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id col1;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;where&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; not missing(col1);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; pattern;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(last.id);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(last.col1);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; ranks;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id col1;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; p pattern $&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;128&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = cats(p,_name_);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;pattern&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; = catx(&lt;/SPAN&gt;&lt;SPAN style="color: #800080; background-color: #ffffff;"&gt;'_'&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;,pattern,p);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;call&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; missing(p);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; col1 _name_ p;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; pattern;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;merge&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; have pattern;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; id;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;print&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt; &lt;/DIV&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt; &lt;/DIV&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt; &lt;/DIV&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE cellpadding="0" cellspacing="0" class="table"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;1&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;2&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;3&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;4&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt;a_b_c&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;2&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;5&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;2&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;5&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt;c_bd&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;3&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;4&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;3&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;2&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt;c_b&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;5&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;1&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;7&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt;c_d&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;6&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;1&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;1&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;.&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt;ab&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;7&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;6&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;5&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;4&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: right;"&gt;1&lt;/TD&gt;&lt;TD class="b data" nowrap="nowrap" style="text-align: left;"&gt;d_c_b_a&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&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;SPAN style="color: #000000; background-color: #ffffff;"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Oct 2013 20:04:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103370#M28960</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2013-10-04T20:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103371#M28961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just another approach with a single pass through the data:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp; input id a b c d;&lt;BR /&gt;cards; &lt;BR /&gt;1 2 3 4 .&lt;BR /&gt;2 . 5 2 5&lt;BR /&gt;3 . . . .&lt;BR /&gt;4 . 3 2 .&lt;BR /&gt;5 . . 1 7&lt;BR /&gt;6 1 1 . .&lt;BR /&gt;7 6 5 4 1&lt;BR /&gt;;;;;&lt;BR /&gt;run; &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data want(drop= _:);&lt;BR /&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length pattern $32.;&lt;BR /&gt;&amp;nbsp; array myarr {*} a b c d;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length _value 8 _varname $32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl hash h (multidata:'y', ordered:'y', hashexp:3);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl hiter hit ('h');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineKey('_value');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineData('_varname','_value');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineDone();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; _rc=h.clear();&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _i=1 to dim(myarr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _value=myarr[_i];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if missing(_value) then continue;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _varname=vname(myarr[_i]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.add();&lt;BR /&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; _rc = hit.first();&lt;BR /&gt;&amp;nbsp; _value_old=_value;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while (_rc = 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&amp;nbsp; _value_old=_value then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pattern=cats(pattern,_varname);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pattern=cats(pattern,'_',_varname);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _value_old=_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc = hit.next();&lt;BR /&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 05 Oct 2013 05:42:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103371#M28961</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2013-10-05T05:42:36Z</dc:date>
    </item>
    <item>
      <title>Re: row sorting</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103372#M28962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Small update to the @data_null_; code..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 15px; font-family: 'Courier New'; color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; pattern;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;(last.id);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;(last.col1);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; ranks;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; id col1;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; p pattern $&lt;/SPAN&gt;&lt;STRONG style="font-size: 15px; font-family: 'Courier New'; color: #008080; background-color: #ffffff;"&gt;128&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = cat&lt;STRONG&gt;X('_',&lt;/STRONG&gt;p,_name_);/*Updated cats(p,_name_) to &lt;/SPAN&gt;&lt;SPAN style="line-height: 1.5em; color: #000000; font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;cat&lt;/SPAN&gt;&lt;STRONG style="line-height: 1.5em; color: #000000; font-family: 'Courier New'; font-size: 15px;"&gt;X('_',&lt;/STRONG&gt;&lt;SPAN style="line-height: 1.5em; color: #000000; font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;p,_name_)*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;pattern&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; = catx(&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #800080; background-color: #ffffff;"&gt;'_'&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;,pattern,p);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;call&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; missing(p);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #0000ff; background-color: #ffffff;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt; col1 _name_ p;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 15px; font-family: 'Courier New'; color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="font-size: 15px; font-family: 'Courier New'; color: #000080; background-color: #ffffff;"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;Hope this will helps..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 15px; background-color: #ffffff;"&gt;Thanks,Yash.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Oct 2013 09:58:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/row-sorting/m-p/103372#M28962</guid>
      <dc:creator>yaswanthj</dc:creator>
      <dc:date>2013-10-08T09:58:15Z</dc:date>
    </item>
  </channel>
</rss>

