<?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 retain or lag? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357140#M83820</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;i have the data below and i want for each change for the variable Type (by US)&amp;nbsp; to get the first date and keep only one record for each type:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;informat date YYMMDD10.&amp;nbsp; ;format date ddmmyy10.;&lt;BR /&gt;input @1 US $ @3 Type $&amp;nbsp; @5 date date7.;&lt;BR /&gt;datalines;&lt;BR /&gt;X A 30JAN09&lt;BR /&gt;X C 31MAR09&lt;BR /&gt;X C 31MAY09&lt;BR /&gt;X A 30JUN09&lt;BR /&gt;X C 30AUG09&lt;BR /&gt;&lt;STRONG&gt;X P 31OCT09&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;X A 01NOV09&lt;/STRONG&gt;&lt;BR /&gt;X A 21NOV09&lt;BR /&gt;&lt;STRONG&gt;X C 20DEC09&lt;/STRONG&gt;&lt;BR /&gt;X C 31DEC09&lt;BR /&gt;Y A 30JUN09&lt;BR /&gt;&lt;STRONG&gt;Y C 30AUG09&lt;/STRONG&gt;&lt;BR /&gt;Y C 28FEB10&lt;BR /&gt;&lt;STRONG&gt;Y A 31MAY10&lt;/STRONG&gt;&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;the result should be:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;US&lt;/TD&gt;&lt;TD&gt;Type&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;20-Dec-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1-Nov-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;P&lt;/TD&gt;&lt;TD&gt;31-Oct-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;30-Aug-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;31-May-10&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
    <pubDate>Tue, 09 May 2017 11:48:44 GMT</pubDate>
    <dc:creator>mac2</dc:creator>
    <dc:date>2017-05-09T11:48:44Z</dc:date>
    <item>
      <title>retain or lag?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357140#M83820</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;i have the data below and i want for each change for the variable Type (by US)&amp;nbsp; to get the first date and keep only one record for each type:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;informat date YYMMDD10.&amp;nbsp; ;format date ddmmyy10.;&lt;BR /&gt;input @1 US $ @3 Type $&amp;nbsp; @5 date date7.;&lt;BR /&gt;datalines;&lt;BR /&gt;X A 30JAN09&lt;BR /&gt;X C 31MAR09&lt;BR /&gt;X C 31MAY09&lt;BR /&gt;X A 30JUN09&lt;BR /&gt;X C 30AUG09&lt;BR /&gt;&lt;STRONG&gt;X P 31OCT09&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;X A 01NOV09&lt;/STRONG&gt;&lt;BR /&gt;X A 21NOV09&lt;BR /&gt;&lt;STRONG&gt;X C 20DEC09&lt;/STRONG&gt;&lt;BR /&gt;X C 31DEC09&lt;BR /&gt;Y A 30JUN09&lt;BR /&gt;&lt;STRONG&gt;Y C 30AUG09&lt;/STRONG&gt;&lt;BR /&gt;Y C 28FEB10&lt;BR /&gt;&lt;STRONG&gt;Y A 31MAY10&lt;/STRONG&gt;&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;the result should be:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;US&lt;/TD&gt;&lt;TD&gt;Type&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;20-Dec-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1-Nov-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;P&lt;/TD&gt;&lt;TD&gt;31-Oct-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;30-Aug-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;31-May-10&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2017 11:48:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357140#M83820</guid>
      <dc:creator>mac2</dc:creator>
      <dc:date>2017-05-09T11:48:44Z</dc:date>
    </item>
    <item>
      <title>Re: retain or lag?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357141#M83821</link>
      <description>&lt;P&gt;You don't need either reatin or lag. &amp;nbsp;Sort your data so the record occurs first, then output that. &amp;nbsp;Note your required output does not match your test data. &amp;nbsp;For X, A, the lowest date is 30JAN09, you highlight 01NOV09.&lt;/P&gt;
&lt;PRE&gt;data test;
  informat date YYMMDD10.  ;format date ddmmyy10.;
  input @1 US $ @3 Type $  @5 date date7.;
datalines;
X A 30JAN09
X C 31MAR09
X C 31MAY09
X A 30JUN09
X C 30AUG09
X P 31OCT09
X A 01NOV09
X A 21NOV09
X C 20DEC09
X C 31DEC09
Y A 30JUN09
Y C 30AUG09
Y C 28FEB10
Y A 31MAY10
;
run;

proc sort data=test out=want;
  by us type date;
run;
data want;
  set want;
  by us type;
  if first.type then output;
run;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2017 11:53:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357141#M83821</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-05-09T11:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: retain or lag?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357147#M83822</link>
      <description>&lt;P&gt;sorry, i wasn/t explicit enough. i want for each US and type to have the 'first' date when the type changed.&lt;/P&gt;&lt;P&gt;for example, for US='X' type='C' i want to keep only the records underlined:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;X A 30JAN09&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;X C 31MAR09&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;X C 31MAY09&lt;BR /&gt;X A 30JUN09&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;X C 30AUG09&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;X P 31OCT09&lt;BR /&gt;X A 01NOV09&lt;BR /&gt;X A 21NOV09&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;X C 20DEC09&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;X C 31DEC09&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2017 12:12:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357147#M83822</guid>
      <dc:creator>mac2</dc:creator>
      <dc:date>2017-05-09T12:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: retain or lag?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357149#M83823</link>
      <description>&lt;P&gt;Use the NOTSORTED keyword on the BY statement. Sort by US DATE but set the data by US TYPE NOTSORTED.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  set have ;
  by us type notsorted;
  if first.type;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 May 2017 12:16:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357149#M83823</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-05-09T12:16:10Z</dc:date>
    </item>
    <item>
      <title>Re: retain or lag?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357150#M83824</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Edit, i forgot about the date part. This should work assuming data is sorted by date also.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I mean from your logic this works:&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;data want;
  set test;
  by us type notsorted;
  if first.type and not first.us then output;
run;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2017 12:17:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/retain-or-lag/m-p/357150#M83824</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-05-09T12:17:25Z</dc:date>
    </item>
  </channel>
</rss>

