<?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 in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415575#M67573</link>
    <description>&lt;P&gt;I think that the following does what you want:&lt;/P&gt;
&lt;PRE&gt;data have;
  infile cards dlm='09'x;
  informat Date want_New_Date date11.;
  input Row ID ID2 ID2_No Marking $ Date want_New_Date;
  cards;
1	429857919	1	1	 	13-jun-17	13-jun-17
2	429857919	2	1	 	13-jun-17	13-jun-17
3	429857919	2	2	Mark	10-jul-17	10-jul-17
4	429857919	2	3	 	07-jul-17	10-jul-17
5	432852631	2	1	 	28-aug-17	28-aug-17
6	432852631	2	2	Mark	05-sep-17	05-sep-17
7	432852631	2	3	 	08-sep-17	05-sep-17
8	432852631	1	1	 	15-sep-17	15-sep-17
9	432852631	2	1	 	08-nov-17	08-nov-17
10	432852631	2	2	 	10-nov-17	10-nov-17
;
data want;
  set have;
  by ID ID2 notsorted;
  retain ret New_Date;
  if first.ID2 then ret=0;
  if Marking eq 'Mark' then do;
    ret=1;
    New_Date=Date;
  end;
  else if ret eq 0 then New_Date=Date;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 22 Nov 2017 17:05:23 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2017-11-22T17:05:23Z</dc:date>
    <item>
      <title>Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415566#M67571</link>
      <description>&lt;P&gt;Please help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Want to create a "New Date" column, see example&amp;nbsp;below. Based on Date, and retain within ID&amp;amp;ID2, when marking is "Mark"&lt;/P&gt;&lt;P&gt;See row 4 and 7 in example, where New Date is retain, only until cobination of ID&amp;amp;ID2 changes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Row&lt;/TD&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;ID2&lt;/TD&gt;&lt;TD&gt;ID2_No&lt;/TD&gt;&lt;TD&gt;Marking&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;New Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;429857919&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;13-jun-17&lt;/TD&gt;&lt;TD&gt;13-jun-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;429857919&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;13-jun-17&lt;/TD&gt;&lt;TD&gt;13-jun-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;429857919&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Mark&lt;/TD&gt;&lt;TD&gt;10-jul-17&lt;/TD&gt;&lt;TD&gt;10-jul-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;429857919&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;07-jul-17&lt;/TD&gt;&lt;TD&gt;10-jul-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;432852631&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;28-aug-17&lt;/TD&gt;&lt;TD&gt;28-aug-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;432852631&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Mark&lt;/TD&gt;&lt;TD&gt;05-sep-17&lt;/TD&gt;&lt;TD&gt;05-sep-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;432852631&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;08-sep-17&lt;/TD&gt;&lt;TD&gt;05-sep-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;432852631&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;15-sep-17&lt;/TD&gt;&lt;TD&gt;15-sep-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;432852631&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;08-nov-17&lt;/TD&gt;&lt;TD&gt;08-nov-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;432852631&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;10-nov-17&lt;/TD&gt;&lt;TD&gt;10-nov-17&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 22 Nov 2017 16:35:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415566#M67571</guid>
      <dc:creator>MartinLomborg</dc:creator>
      <dc:date>2017-11-22T16:35:33Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415572#M67572</link>
      <description>&lt;P&gt;What have you tried so far? RETAIN is the correct approach.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/121083"&gt;@MartinLomborg&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Please help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want to create a "New Date" column, see example&amp;nbsp;below. Based on Date, and retain within ID&amp;amp;ID2, when marking is "Mark"&lt;/P&gt;
&lt;P&gt;See row 4 and 7 in example, where New Date is retain, only until cobination of ID&amp;amp;ID2 changes&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Row&lt;/TD&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;ID2_No&lt;/TD&gt;
&lt;TD&gt;Marking&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;New Date&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;429857919&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;13-jun-17&lt;/TD&gt;
&lt;TD&gt;13-jun-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;429857919&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;13-jun-17&lt;/TD&gt;
&lt;TD&gt;13-jun-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;429857919&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Mark&lt;/TD&gt;
&lt;TD&gt;10-jul-17&lt;/TD&gt;
&lt;TD&gt;10-jul-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;429857919&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;07-jul-17&lt;/TD&gt;
&lt;TD&gt;10-jul-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;432852631&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;28-aug-17&lt;/TD&gt;
&lt;TD&gt;28-aug-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;432852631&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Mark&lt;/TD&gt;
&lt;TD&gt;05-sep-17&lt;/TD&gt;
&lt;TD&gt;05-sep-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;432852631&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;08-sep-17&lt;/TD&gt;
&lt;TD&gt;05-sep-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;432852631&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;15-sep-17&lt;/TD&gt;
&lt;TD&gt;15-sep-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;432852631&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;08-nov-17&lt;/TD&gt;
&lt;TD&gt;08-nov-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;432852631&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;10-nov-17&lt;/TD&gt;
&lt;TD&gt;10-nov-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Nov 2017 16:54:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415572#M67572</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-11-22T16:54:22Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415575#M67573</link>
      <description>&lt;P&gt;I think that the following does what you want:&lt;/P&gt;
&lt;PRE&gt;data have;
  infile cards dlm='09'x;
  informat Date want_New_Date date11.;
  input Row ID ID2 ID2_No Marking $ Date want_New_Date;
  cards;
1	429857919	1	1	 	13-jun-17	13-jun-17
2	429857919	2	1	 	13-jun-17	13-jun-17
3	429857919	2	2	Mark	10-jul-17	10-jul-17
4	429857919	2	3	 	07-jul-17	10-jul-17
5	432852631	2	1	 	28-aug-17	28-aug-17
6	432852631	2	2	Mark	05-sep-17	05-sep-17
7	432852631	2	3	 	08-sep-17	05-sep-17
8	432852631	1	1	 	15-sep-17	15-sep-17
9	432852631	2	1	 	08-nov-17	08-nov-17
10	432852631	2	2	 	10-nov-17	10-nov-17
;
data want;
  set have;
  by ID ID2 notsorted;
  retain ret New_Date;
  if first.ID2 then ret=0;
  if Marking eq 'Mark' then do;
    ret=1;
    New_Date=Date;
  end;
  else if ret eq 0 then New_Date=Date;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Nov 2017 17:05:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415575#M67573</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-11-22T17:05:23Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415625#M67575</link>
      <description>&lt;P&gt;I think a simple version gets you there:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;by id id2 notsorted;&lt;/P&gt;
&lt;P&gt;if first.id2 or marking='Mark' then new_date = date;&lt;/P&gt;
&lt;P&gt;retain new_date;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Nov 2017 19:31:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415625#M67575</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-11-22T19:31:31Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415652#M67577</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt;: I, too, like parsimony. However, your code may have simplified too much as the 10th record gets assigned the wrong date.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Nov 2017 20:32:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415652#M67577</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-11-22T20:32:12Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415661#M67578</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;&amp;nbsp;you might be right.&amp;nbsp; I just couldn't see a reason why the value should change for the 10th observation.&amp;nbsp; Maybe the original poster will supply more of an explanation.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Nov 2017 20:47:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415661#M67578</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-11-22T20:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415721#M67579</link>
      <description>&lt;P&gt;Data does not seem to be sorted by ID and ID2.&amp;nbsp; I added the NOTSORTED option to the BY statement to process it as is.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you use a DOW loop then there should be no need for RETAIN.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
do until(last.id2);
  set have ;
  by id id2 notsorted;
  format new_date yymmdd10.;
  if not marked then new_date=date;
  if not missing(marking) then marked=1;
  output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/16812i7A51ABADAE1D5F1C/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2017 00:48:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415721#M67579</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-11-23T00:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Retain</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415751#M67580</link>
      <description>Thanks Guys, the 10th observation does not change in new date.</description>
      <pubDate>Thu, 23 Nov 2017 07:03:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Retain/m-p/415751#M67580</guid>
      <dc:creator>MartinLomborg</dc:creator>
      <dc:date>2017-11-23T07:03:00Z</dc:date>
    </item>
  </channel>
</rss>

