<?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: Retain increment in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426518#M105090</link>
    <description>&lt;P&gt;I can't find the autoexec file.&lt;/P&gt;&lt;P&gt;Thanks Astounding but I have the same result, as this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;</description>
    <pubDate>Wed, 10 Jan 2018 16:09:12 GMT</pubDate>
    <dc:creator>Num19</dc:creator>
    <dc:date>2018-01-10T16:09:12Z</dc:date>
    <item>
      <title>Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426481#M105074</link>
      <description>&lt;P&gt;Hi, I posted because of a problem with a title in export (PDF) (Which has been solved) I have now an other problem :&lt;/P&gt;&lt;P&gt;I would like to create a table like this one :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried this :&lt;/P&gt;&lt;PRE&gt;DATA table;
SET RESULTAT (FIRSTOBS=2);
RETAIN rank 1;
RETAIN j;
retain i;
ATTRIB
	Rang
		LABEL="Rank";

	i=0;
	IF gold=lag(gold) AND silver=lag(silver) AND bronze=lag(bronze) THEN j=j+1 AND rang=rang AND i=1;
	
	IF gold ne lag(gold) AND silver ne lag(silver) AND bronze ne lag(bronze) AND i=1 THEN rank=rank+j;
	ELSE rank=rank+1 AND i=0;
RUN;&lt;/PRE&gt;&lt;P&gt;And Instead of, I just have :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, how could I do without the lag function ?&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 15:13:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426481#M105074</guid>
      <dc:creator>Num19</dc:creator>
      <dc:date>2018-01-10T15:13:16Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426484#M105075</link>
      <description>&lt;P&gt;Without seeing some data it quite hard to say, and please don't go posting screenshots or files or something else.&amp;nbsp; You can see in other posts how people have posted a small amount of test data to illustrate a point, using a datastep so it can be run straight off.&amp;nbsp; Use this post if need be:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Without data I can't really alter your code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You may be able to something with the rank procedure, but it looks like your conditional logic is too complicated, probably easier to use a datastep.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also, as per previous posts, please avoid coding all in uppercase - it sounds like your shouting at us!&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 15:21:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426484#M105075</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-01-10T15:21:14Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426486#M105076</link>
      <description>&lt;P&gt;You would have to show us what your RESULTAT data set looks like.&lt;/P&gt;
&lt;P&gt;If you attempt to RETAIN a variable with the same name as one in your input data set each time an observation is read from the input set it will reset the value to that in the input set.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Second, LAG has a separate queue for each variable and use. Conditional statements involving LAG almost never work as you think they should. You would be better off to create unconditionally the lagged value and use those such as:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;lg=lag(gold);&lt;/P&gt;
&lt;P&gt;ls=lag(silver);&lt;/P&gt;
&lt;P&gt;lb=lag(bronze);&lt;/P&gt;
&lt;P&gt;if gold=lg and silver=ls and bronze=lb then &amp;lt;whatever&amp;gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and then drop the lagged values from the data set after verifying the code behaves as desired.&lt;/P&gt;
&lt;P&gt;drop lg ls lb;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 15:24:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426486#M105076</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-01-10T15:24:22Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426491#M105077</link>
      <description>&lt;P&gt;When using an IF/THEN statement, there can be only one result.&amp;nbsp; This is incorrect syntax:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;... THEN j=j+1 AND rang=rang AND i=1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS can interpret it, but the result is not what you are intending.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instead, you have to list the results as separate statements inside a DO group:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;... THEN DO;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; j=j+1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;rang=rang;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;i=1;&lt;/P&gt;
&lt;P&gt;END;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There must be an END to match up with DO.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 15:34:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426491#M105077</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-01-10T15:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426518#M105090</link>
      <description>&lt;P&gt;I can't find the autoexec file.&lt;/P&gt;&lt;P&gt;Thanks Astounding but I have the same result, as this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 16:09:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426518#M105090</guid>
      <dc:creator>Num19</dc:creator>
      <dc:date>2018-01-10T16:09:12Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426540#M105102</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/185408"&gt;@Num19&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;I can't find the autoexec file.&lt;/P&gt;
&lt;P&gt;Thanks Astounding but I have the same result, as this :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;
&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;What does an autoexec file have to do with this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Show the exact code you run and the log. Post it into a code box opened with the forum {I} menu icon.&lt;/P&gt;
&lt;P&gt;If your code has an error then the previous result is not replaced. Since your code shows use of variables I and j and you do not show any code dropping them,&amp;nbsp;&amp;nbsp;your "result" is incomplete because it does not include them.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2018 15:32:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426540#M105102</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-01-11T15:32:29Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426582#M105113</link>
      <description>&lt;P&gt;I precise it because I can't export datas.&lt;/P&gt;&lt;P&gt;Here is an example of what I have : &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="example.PNG" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/17771i95F0D18FFE2577B5/image-size/large?v=v2&amp;amp;px=999" role="button" title="example.PNG" alt="example.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to have 3 and not 2 as in the picture.&lt;/P&gt;&lt;P&gt;Sorry for the pic RW9.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 18:32:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426582#M105113</guid>
      <dc:creator>Num19</dc:creator>
      <dc:date>2018-01-10T18:32:04Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426590#M105115</link>
      <description>&lt;P&gt;You apparently have the data in&amp;nbsp;order from the highest rank (the best) to the lowest.&amp;nbsp; So the first record has rank=1.&amp;nbsp;&amp;nbsp; And I think you want all instances of ties in gold and silver and bronze to be assigned identical ranks - namely the highest rank for which they are tied.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then, taking advent of the order the dataset already has, you can&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="SAS Monospace" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; want;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; by&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; gold silver bronze &lt;/FONT&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;notsorted&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; retain&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; rank;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; first.bronze &lt;/FONT&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;then&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; rank=_n_;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="SAS Monospace" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do I understand your objective correctly?&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 18:47:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426590#M105115</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-01-10T18:47:19Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426606#M105119</link>
      <description>&lt;P&gt;Not really, the two bad points in this code :&lt;/P&gt;&lt;PRE&gt;DATA table;
SET RESULTAT (FIRSTOBS=2);
RETAIN rank 1;
RETAIN j;
retain i;
ATTRIB
	Rang
		LABEL="Rank";

	i=0;
	IF gold=lag(gold) AND silver=lag(silver) AND bronze=lag(bronze) THEN rang=rang;
	ELSE rank=rank+1 AND i=0;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;are :&lt;/P&gt;&lt;P&gt;-The use of the function lag&lt;/P&gt;&lt;P&gt;-It doesn't increment the rank, I have this kind of result :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Instead of :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Player&amp;nbsp;&amp;nbsp; Rank&lt;/P&gt;&lt;P&gt;P1&amp;nbsp;&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;P2&amp;nbsp;&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;P3&amp;nbsp;&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;P4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 19:15:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426606#M105119</guid>
      <dc:creator>Num19</dc:creator>
      <dc:date>2018-01-10T19:15:08Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426644#M105131</link>
      <description>&lt;P&gt;Nobody ?&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 20:54:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426644#M105131</guid>
      <dc:creator>Num19</dc:creator>
      <dc:date>2018-01-10T20:54:52Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426652#M105134</link>
      <description>&lt;P&gt;OK, one more time ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;YOU CANNOT DO THIS:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ELSE rank=rank+1 AND i=0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Well, you can do it, but the answer is wrong.&amp;nbsp; To DO more than one thing, you must use DO:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ELSE DO;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; rank = rank + 1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; i=0;&lt;/P&gt;
&lt;P&gt;END;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That doesn't mean that all the rest of your code is correct, but this part must be fixed if you are to ever get the result you want.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:07:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426652#M105134</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-01-10T21:07:55Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426700#M105162</link>
      <description>&lt;P&gt;I do not understand the incentive to use the lag function here, when the use of BY groups is much more straightforward.&amp;nbsp; It provides an easy way to count the number of consecutive tied results, as well as identifying when a new group has started.&amp;nbsp; When starting a new group take the last rank, add the number of duplicates +1 to get the new rank.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I see by your data image that you want to start rank=1 with each new year.&amp;nbsp; So here is a modified program that does what you have shown you want.&amp;nbsp; It starts each year with a rank=1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="SAS Monospace" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; want (&lt;/FONT&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;drop&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;=ndupes);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; by&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; year gold silver bronze &lt;/FONT&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;notsorted&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; retain&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; rank ndupes;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; first.bronze &lt;/FONT&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;do&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; &amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; first.year &lt;/FONT&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;then&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; rank=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; rank+ndupes+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="SAS Monospace" size="2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ndupes=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="SAS Monospace" size="2"&gt;&amp;nbsp; else&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; ndupes+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="SAS Monospace" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 22:07:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426700#M105162</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-01-10T22:07:26Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426708#M105167</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I strongly agree, and absolutely would take your approach if programming this myself.&amp;nbsp; However, I feel that this board should address several purposes.&amp;nbsp; Some of my thoughts along those lines (not all of which apply to this question) ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The answers should be answers that the poster can understand.&amp;nbsp; It is a disservice to give a hashing solution when the poster is asking about the proper syntax for IF/THEN statements.&amp;nbsp; It doesn't matter whether the hashing solution works.&amp;nbsp; Suggesting code that a poster couldn't possibly understand is wrong (even dangerous).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unless a poster already knows a fair amount of SAS, it is a disservice to provide a macro language solution.&amp;nbsp; It would be a better use of the poster's time to learn more about SAS and forget about macro language for a year.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sometimes it is a judgment call ... do I correct what the poster started out to do, or do I start from scratch.&amp;nbsp; Which direction will be a better learning experience for the poster?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Given that this is a message board with limited interaction and not a classroom, I emphasize solutions that resemble the poster's code if at all possible.&amp;nbsp; I expect that to be the best way for the poster to build upon what s/he has already learned.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All FWIW, and all JMO.&amp;nbsp; Clearly, many smart people post here but disagree with these ideas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 22:21:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426708#M105167</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-01-10T22:21:57Z</dc:date>
    </item>
    <item>
      <title>Re: Retain increment</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426804#M105201</link>
      <description>&lt;P&gt;I refer you back to my post above.&amp;nbsp; Post test data in the form of a datastep, and provide example output.&amp;nbsp; This guidance will help you post good questions to get good answers.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2018 09:16:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-increment/m-p/426804#M105201</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-01-11T09:16:16Z</dc:date>
    </item>
  </channel>
</rss>

