<?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: How to keep data rows using conditional rules in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363545#M86105</link>
    <description>&lt;P&gt;Or, in the interest of ever-more-compact code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; want;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; by&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; client;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; (admit-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;15&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;)&amp;gt;lag(disch) or first.client;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Like my other note, make sure the test on lag(disch) is the first condition in the subsetting IF.&lt;/P&gt;</description>
    <pubDate>Thu, 01 Jun 2017 17:56:58 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2017-06-01T17:56:58Z</dc:date>
    <item>
      <title>How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363214#M85950</link>
      <description>&lt;P&gt;Hello SAS community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a question regarding how to capture certain rows that fall under a certain criteria.&lt;/P&gt;&lt;P&gt;For example I have a database that has clinical information on clients. (Client 1 and 2 in this example). I also have which provider they saw and what their admission (Admit Date) and Dishcarge (dsch date) dates are. I want to only keep the first rowe where the difference between the discharge date and the next admit date&amp;nbsp;(for the same client) is less than 15.&lt;/P&gt;&lt;P&gt;As such I would keep only row 1 (for client1) and rows 4 and 5 for Client 2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Suggestions on SAS code that can get this output?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Row #&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Client&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Provider&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Admit Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Dsch Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2/8/2016&lt;/TD&gt;&lt;TD&gt;2/10/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2/26/2016&lt;/TD&gt;&lt;TD&gt;2/22/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2/23/2016&lt;/TD&gt;&lt;TD&gt;2/24/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/2/2016&lt;/TD&gt;&lt;TD&gt;1/3/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3/20/2016&lt;/TD&gt;&lt;TD&gt;3/23/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;4/25/2016&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4/26/2016&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&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 in advance!&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2017 20:34:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363214#M85950</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2017-05-31T20:34:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363237#M85960</link>
      <description>&lt;P&gt;Hi. Did you mean "greater than or equal to 15 days" since that waht your dsired output indicates, yes/no? Also, row #2 in your data has a discharge date prior to the admit date. Nionetheless (and presuming GE 15 days, not LT 15 days) ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;data x;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;input client provider (admit disch) (:mmddyy.);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;format admit disch mmddyy10.;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;datalines;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;1 3 2/8/2016 2/10/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;1 3 2/26/2016 2/22/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;1 4 2/23/2016 2/24/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;2 1 1/2/2016 1/3/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;2 3 3/20/2016 3/23/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;2 4 4/25/2016 4/26/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;data y;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;retain rec 1;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;do j=1 by 1;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; set x;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; by client;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; rec + 1;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; if last.client then leave;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; set x (keep=admit rename=(admit=next_admit)) point=rec;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; if next_admit - disch ge 15 then output;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;drop j;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;DATA SET: y&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;client provider &amp;nbsp; admit &amp;nbsp; &amp;nbsp; disch &amp;nbsp; &amp;nbsp;next_admit&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp;02/08/2016 02/10/2016 02/26/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; 01/02/2016 01/03/2016 03/20/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp;03/20/2016 03/23/2016 04/25/2016&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2017 21:41:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363237#M85960</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2017-05-31T21:41:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363243#M85965</link>
      <description>&lt;P&gt;This is a good program for the "set/by plus merge-with-offset" technique.&amp;nbsp; Assuming your data are sorted by client_id/disch_date:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have (keep=client);
  by client;
  merge have
        have (firstobs=2 keep=admit_date rename=(admit_date=next_admit));
  if last.client=0 and (next_admit-dsch_date)&amp;gt;=15;  /*Changed admit_date to next_admit*/
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Correction made above&amp;nbsp; thanks to &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13759"&gt;@MikeZdeb&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;Notes:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;"SET/BY": The SET&amp;nbsp; and BY statement are there generate the automatirc variables first.client and last.client, indicating whether the record-in-hand is at the beginning and/or end of data for a given client&lt;/LI&gt;
&lt;LI&gt;"Merge with offset": the MERGE statement merges dataset HAVE with itself, but the 2nd reference to have is offset by one record ("firstobs=2").&amp;nbsp; And the 2nd reference keeps only one variable - admit_date, which is renamed to next_admit.&lt;/LI&gt;
&lt;LI&gt;The result is that it is easy to test for the conditions you require., using the subsetting if statement above.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In general this is a good technique for looking ahead for a condition to control the status of the record-in-hand.&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 01:33:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363243#M85965</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-06-01T01:33:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363255#M85977</link>
      <description>&lt;P&gt;Nice.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ps I think that this ...&amp;nbsp;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;if last.client=0 and (admit_date - dsch_date)&amp;gt;=15;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;was supoosed to be ...&amp;nbsp;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;if last.client=0 and (next_admit - dsch_date)&amp;gt;=15;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes/no?&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2017 22:32:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363255#M85977</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2017-05-31T22:32:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363267#M85986</link>
      <description>&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;I have follow-up and clarifcaiton to my question, &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;Apologies for being confusing.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;To clarify, what I want to do is if a client has multiple visits to a provider any visits that are within 15 days of each other to only take the first visit. So if a client is discharged on Jan 1 and then seen again within 15 days (so between Jan 2 and Jan 15) then only to include the Jan 1 visit. Then if a client is seen on Jan 16 then to include the Jan 16 visit as well.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My example table was not the best. Actaully according to the above description then from my example table I should be expecting row 1 for client 1 and all three rows for client 2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did try&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt; both ways that were suggested and it kind of worked. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;So when I have the data set as follows: &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;(note that row 2 the admit date is before the discharge date which is wrong as zdeb had correctly pointed out)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; x;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; client provider (admit disch) (:&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;mmddyy.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; admit disch &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;mmddyy10.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;1 3 2/8/2016 2/10/2016&lt;/P&gt;&lt;P&gt;1 3 2/26/2016 2/22/2016&lt;/P&gt;&lt;P&gt;1 4 2/23/2016 2/24/2016&lt;/P&gt;&lt;P&gt;2 1 1/2/2016 1/3/2016&lt;/P&gt;&lt;P&gt;2 3 3/20/2016 3/23/2016&lt;/P&gt;&lt;P&gt;2 4 4/25/2016 4/26/2016&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;I get the output where it gives me back rows 1, 4 and 5. NOTE: I also need row 6 for client 2 to also output.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;However, if I change the admit date on row two from '2/26/16' to '2/11/16' then I only get rows 4 and 5 from client 2 and I dont get any rows from client 1 back. I would want to get row 1 from client 1 still. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;To clarify, there were mistakes in my example. I would want row 1 from client 1 and all three rows from client 2, since what I am trying to do is that if there are multiple visits of a cilent and those multiple visits are all within 15 days of each other then to only give me the first vist record, however if the visits are greater than 15 days from each other then to give me each visit that is greater than 15 days. Hope this makes more sense and apologies for any confusion. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Suggestions to the code that you had shared would be greatly appreciated!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Thank you very very much! Appreciate it!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2017 23:27:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363267#M85986</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2017-05-31T23:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363283#M85999</link>
      <description>&lt;P&gt;Does the following do what you want?&lt;/P&gt;
&lt;PRE&gt;data have;
  input client provider (admit disch) (:mmddyy.);
  format admit disch mmddyy10.;
  datalines;
1 3 2/8/2016 2/10/2016
1 3 2/11/2016 2/22/2016
1 4 2/23/2016 2/24/2016
2 1 1/2/2016 1/3/2016
2 3 3/20/2016 3/23/2016
2 4 4/25/2016 4/26/2016
;
run;

data want (drop=last: next:);
  set have (keep=client);
  by client;
  retain last_disch;
  merge have
        have (firstobs=2 keep=admit rename=(admit=next_admit));
  last_disch=lag(disch);
  if first.client then output;
  else if last.client=0 then do;
    if (next_admit - disch)&amp;gt;=15 then output;
  end;
  else if last.client then do;
    if admit-last_disch &amp;gt;=15 then output;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 01:39:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363283#M85999</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-01T01:39:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363285#M86000</link>
      <description>&lt;P&gt;OK, for all pair of consecutive records, you want &lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;only the first&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt; if it is 15 days or less prior to the latter record.&amp;nbsp; And you also want all records that are more the 15 days prior.&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;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have (keep=client);
  by client;
  merge have
        have (firstobs=2 keep=admit rename=(admit_date=next_admit));

  if admit_date&amp;gt;lag(discharge_date)+15 and first.client=0 then output;
  else if (last.client=0 and next_admit&amp;lt;=dsch_date+15) then output;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But let's rephrase your request&amp;nbsp; -&amp;nbsp;basically you want &lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;all records EXCEPT those that are within 15 days of the prior record&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;, right?&amp;nbsp; If so, then the program can be much more compact:&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 client;
  if admit_date-15 &amp;lt; lag(dsch_date) and first.client=0 then delete;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Editted addition, after &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;'s endorsement:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I should add an&amp;nbsp;important caveat to the 2nd option above.&amp;nbsp;&amp;nbsp;Make&amp;nbsp;sure the "admit_date-15&amp;lt;lag(dsch_date)" is always the FIRST condition in the "&lt;U&gt;&lt;EM&gt;if ... then delete&lt;/EM&gt;&lt;/U&gt;"&amp;nbsp;statement.&amp;nbsp; I.e. &lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;don't use&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt; "if first.client=0 and admit_date-15 &amp;lt; lag(dsch_date) then delete".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why?&amp;nbsp; Because, regardless of the result of the IF test you always want to update the (rather short) queue maintained by the lag function (i.e. you always wnat to replace the retrieved dsch_date value with the new value of dsch_date).&amp;nbsp;&amp;nbsp; And since there is an "AND" connecting two conditions&amp;nbsp;in the if test, SAS is smart enough&amp;nbsp;not to waste resources testing the&amp;nbsp;2nd condition&amp;nbsp;when the first is not true.&amp;nbsp; Putting the "lag()" part as the 2nd condition would mean&amp;nbsp;the queue is not always updated.&amp;nbsp; Once that happens erroneous results are guaranteed.&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 16:49:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363285#M86000</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-06-01T16:49:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363416#M86062</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input client provider (admit disch) (:mmddyy.);
format admit disch mmddyy10.;
datalines;
1 3 2/8/2016 2/10/2016
1 3 2/26/2016 2/22/2016
1 4 2/23/2016 2/24/2016
2 1 1/2/2016 1/3/2016
2 3 3/20/2016 3/23/2016
2 4 4/25/2016 4/26/2016
;
data want;
merge have
      have (firstobs=2 keep=client admit 
      rename=(admit=next_admit client=_client));
  if client=_client and (next_admit-disch)&amp;gt;=15; 
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 01 Jun 2017 13:18:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363416#M86062</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-06-01T13:18:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363463#M86081</link>
      <description>&lt;P&gt;&lt;FONT face="andale mono,times" size="3"&gt;Thank you Ksharp for your reply.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times" size="3"&gt;I tried this and it didnt get the result I needed.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times" size="3"&gt;I ran the following (Note I fixed row 2 admit date as it was after the disch date originally which was incorrect on my part)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;data&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; have;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; client provider (admit disch) (:&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;mmddyy.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; admit disch &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;mmddyy10.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;1 3 2/8/2016 2/10/2016&lt;/P&gt;&lt;P&gt;1 3 2/16/2016 2/22/2016&lt;/P&gt;&lt;P&gt;1 4 2/23/2016 2/24/2016&lt;/P&gt;&lt;P&gt;2 1 1/2/2016 1/3/2016&lt;/P&gt;&lt;P&gt;2 3 3/20/2016 3/23/2016&lt;/P&gt;&lt;P&gt;2 4 4/25/2016 4/26/2016&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; want;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;merge&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; have&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;have (firstobs=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; keep=client admit &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;rename=(admit=next_admit client=_client));&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; client=_client and (next_admit-disch)&amp;gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;15&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times" size="3"&gt;I get the following:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;client&lt;/TD&gt;&lt;TD&gt;provider&lt;/TD&gt;&lt;TD&gt;admit&lt;/TD&gt;&lt;TD&gt;disch&lt;/TD&gt;&lt;TD&gt;_client&lt;/TD&gt;&lt;TD&gt;next_admit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/2/2016&lt;/TD&gt;&lt;TD&gt;1/3/2016&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/20/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3/20/2016&lt;/TD&gt;&lt;TD&gt;3/23/2016&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4/25/2016&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;which is not what I need. I need rows 1 for client 1 and all three rows for client 3.&lt;/P&gt;&lt;P&gt;But a big thank you for replying!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I think mkeintz and possibly art297s suggestions may have worked!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Testing it on my actual and bigger database!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you ALL for your help, I love asking questions here and getting many useful and helpful responses!!!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I really appreciate it! You are all fantastic!!&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 14:43:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363463#M86081</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2017-06-01T14:43:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363508#M86094</link>
      <description>&lt;P&gt;FWIW: I would go with&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;'s 2nd suggested solution:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  by client;
  if admit-15 &amp;lt; lag(disch) and first.client=0 then delete;
run;
&lt;/PRE&gt;
&lt;P&gt;It does the same thing as my suggested code, but will run a lot faster than the code I suggested.&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>Thu, 01 Jun 2017 16:35:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363508#M86094</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-01T16:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363515#M86098</link>
      <description>&lt;P&gt;Hello &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was just sending you a note when I noticed your reply.&lt;/P&gt;&lt;P&gt;You are correct &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;&amp;nbsp;2nd suggestion actually yielded the result I needed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually I was trying your code too (which was cool and i wanted to try it) but it didnt quite give me the results I needed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example: if I have a table of admit and disch of the client below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;client&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;admit&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;disch&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/5/2016&lt;/TD&gt;&lt;TD&gt;3/8/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/10/2016&lt;/TD&gt;&lt;TD&gt;3/12/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/3/2016&lt;/TD&gt;&lt;TD&gt;4/8/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/19/2016&lt;/TD&gt;&lt;TD&gt;4/21/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/23/2016&lt;/TD&gt;&lt;TD&gt;4/24/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/23/2016&lt;/TD&gt;&lt;TD&gt;5/24/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/1/2016&lt;/TD&gt;&lt;TD&gt;6/6/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/23/2016&lt;/TD&gt;&lt;TD&gt;12/29/2016&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need the following rows to be output:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;client&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;admit&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;disch&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/5/2016&lt;/TD&gt;&lt;TD&gt;3/8/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/3/2016&lt;/TD&gt;&lt;TD&gt;4/8/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/23/2016&lt;/TD&gt;&lt;TD&gt;5/24/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/23/2016&lt;/TD&gt;&lt;TD&gt;12/29/2016&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;&amp;nbsp;2nd suggestion does that however when I run the code you provided I dont get the exact rows I get:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;client&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;admit&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;disch&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/5/2016&lt;/TD&gt;&lt;TD&gt;3/8/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/10/2016&lt;/TD&gt;&lt;TD&gt;3/12/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/23/2016&lt;/TD&gt;&lt;TD&gt;4/24/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/1/2016&lt;/TD&gt;&lt;TD&gt;6/6/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/23/2016&lt;/TD&gt;&lt;TD&gt;12/29/2016&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is the full tables with the coloumns "needed", "mkeintz" and "art", the x under "mkeintz" and "art" indicate rows that were outputed using the respective codes and the x under the "needed" coloumn are as you may have guessed the rows that were needed:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;client&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;admit&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;disch&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;needed&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;mkeintz&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;art&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/5/2016&lt;/TD&gt;&lt;TD&gt;3/8/2016&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3/10/2016&lt;/TD&gt;&lt;TD&gt;3/12/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/3/2016&lt;/TD&gt;&lt;TD&gt;4/8/2016&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/19/2016&lt;/TD&gt;&lt;TD&gt;4/21/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/23/2016&lt;/TD&gt;&lt;TD&gt;4/24/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/23/2016&lt;/TD&gt;&lt;TD&gt;5/24/2016&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/1/2016&lt;/TD&gt;&lt;TD&gt;6/6/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/23/2016&lt;/TD&gt;&lt;TD&gt;12/29/2016&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;trying to figure out where the code needs to be tweaked. maybe in the first. last.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again to all&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 17:06:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363515#M86098</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2017-06-01T17:06:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363541#M86103</link>
      <description>&lt;P&gt;My code wouldn't work because the logic wasn't correct. Unlike&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;'s code, mine was designed to keep rather than delete records. However, it's design was to compare current with next and sometimes previous values. The latter part wasn't in line with your specs.&lt;/P&gt;
&lt;P&gt;The corrected version to keep rather than delete would be:&lt;/P&gt;
&lt;PRE&gt;data want (drop=last:);
  set have;
  by client;
  retain last_disch;
  last_disch=lag(disch);
  if first.client then output;
  else if (admit - last_disch)&amp;gt;=15 then output;
run;
&lt;/PRE&gt;
&lt;P&gt;That should make the same selections as&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;'s code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 17:49:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363541#M86103</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-01T17:49:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to keep data rows using conditional rules</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363545#M86105</link>
      <description>&lt;P&gt;Or, in the interest of ever-more-compact code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; want;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; by&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; client;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; (admit-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;15&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;)&amp;gt;lag(disch) or first.client;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Like my other note, make sure the test on lag(disch) is the first condition in the subsetting IF.&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2017 17:56:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-keep-data-rows-using-conditional-rules/m-p/363545#M86105</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-06-01T17:56:58Z</dc:date>
    </item>
  </channel>
</rss>

