<?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 descending sequence number, considering same number in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651590#M195514</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create the descending sequence number of table 1, especially, if two number are equal, then they should be recorded with the same sequence number (just like two '90' are order 2 and two '88' are order 4).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried the code like&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;order =_N_;&lt;/PRE&gt;&lt;P&gt;but it cannot figure out the problem like "two '90' are recorded as 2 and two '88' are recorded as&amp;nbsp; 4"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please give me some suggestions about this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;table 1&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;number&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;I expect to get table 2 like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;number&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;order&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 28 May 2020 23:34:15 GMT</pubDate>
    <dc:creator>Alexxxxxxx</dc:creator>
    <dc:date>2020-05-28T23:34:15Z</dc:date>
    <item>
      <title>descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651590#M195514</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create the descending sequence number of table 1, especially, if two number are equal, then they should be recorded with the same sequence number (just like two '90' are order 2 and two '88' are order 4).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried the code like&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;order =_N_;&lt;/PRE&gt;&lt;P&gt;but it cannot figure out the problem like "two '90' are recorded as 2 and two '88' are recorded as&amp;nbsp; 4"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please give me some suggestions about this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;table 1&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;number&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;I expect to get table 2 like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;number&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;order&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 May 2020 23:34:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651590#M195514</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2020-05-28T23:34:15Z</dc:date>
    </item>
    <item>
      <title>Re: descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651599#M195517</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/262815"&gt;@Alexxxxxxx&lt;/a&gt;&amp;nbsp; All you need is PROC RANK&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input number;
cards; 
100
90
90
88
88
87
;
proc rank data=have out=want descending ties=low;
   var number ;
   ranks order;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;RESULTS&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="results.PNG" style="width: 217px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/40128iFA948CB3AF6305EC/image-size/large?v=v2&amp;amp;px=999" role="button" title="results.PNG" alt="results.PNG" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 28 May 2020 23:50:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651599#M195517</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-28T23:50:21Z</dc:date>
    </item>
    <item>
      <title>Re: descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651633#M195535</link>
      <description>&lt;P&gt;Assuming your data are already sorted, by-group processing can do the job:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input number;
cards; 
100
90
90
88
88
87
;
run;

data want;
  set have;
  by descending number;
  if first.number then order =_N_;
  retain order 0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;All the best&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2020 06:51:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651633#M195535</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2020-05-29T06:51:58Z</dc:date>
    </item>
    <item>
      <title>Re: descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651655#M195543</link>
      <description>many thanks!</description>
      <pubDate>Fri, 29 May 2020 08:09:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651655#M195543</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2020-05-29T08:09:34Z</dc:date>
    </item>
    <item>
      <title>Re: descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651657#M195545</link>
      <description>Many thanks for your advice.&lt;BR /&gt;&lt;BR /&gt;May I ask the logic behind the code? it looks simple but works very well.</description>
      <pubDate>Fri, 29 May 2020 08:11:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651657#M195545</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2020-05-29T08:11:21Z</dc:date>
    </item>
    <item>
      <title>Re: descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651668#M195552</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;it's the `by-group processing` which is very basic/fundamental concept in the data step processing (google it).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assuming that your dataset is sorted BY the variable `number` you can use the `by` clause which makes SAS to "turn on" two additional special technical/temporary variables related to `number` which are `first.number` and `last.number`. They work in the following way:&lt;/P&gt;
&lt;P&gt;- `first.number` gets value 1 if it is the first observation of given by-group determined by value of `number`, and 0 otherwise&lt;/P&gt;
&lt;P&gt;- `last.number` gets value 1 if it is the last observation of given by-group determined by value of `number`, and 0 otherwise&lt;/P&gt;
&lt;P&gt;e.g.&lt;/P&gt;
&lt;PRE&gt;number first.number last.number
1 1 0
1 0 0
1 0 1
2 1 0
2 0 1
3 1 1&lt;/PRE&gt;
&lt;P&gt;the `IF` condition is checking if we are in the first observation for a given group and in case "yes" variable order gets the value of the _N_ variable, since it is happening only in the first observation of the group you have to remember this value for subsequent observations in the group - that is why you need use the `retain` statement to prevent SAS from making the `order` variable missing after each iteration of the main loop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the best&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2020 09:18:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651668#M195552</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2020-05-29T09:18:18Z</dc:date>
    </item>
    <item>
      <title>Re: descending sequence number, considering same number</title>
      <link>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651696#M195562</link>
      <description>Many thanks for your answer.</description>
      <pubDate>Fri, 29 May 2020 12:41:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/descending-sequence-number-considering-same-number/m-p/651696#M195562</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2020-05-29T12:41:17Z</dc:date>
    </item>
  </channel>
</rss>

