<?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 compare then retain/remove dates using RETAIN STATEMENT? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638895#M78204</link>
    <description>&lt;P&gt;Per your rule, the first two observations of ID 33 (ADMIT_DT 2018-05-11) need to be removed, as the DISCH_DT is within 30 days of the next ADMIT_DT.&lt;/P&gt;</description>
    <pubDate>Fri, 10 Apr 2020 10:37:05 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2020-04-10T10:37:05Z</dc:date>
    <item>
      <title>How to compare then retain/remove dates using RETAIN STATEMENT?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638837#M78199</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'll start by providing the requirement&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Blue highlighted dates are the expected results&lt;/LI&gt;&lt;LI&gt;DAYS_DIFF=1st DISCH_DT-NEXT ADMIT_DT&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;1. If the discharge date is followed by readmission or direct transfer to an inpatient care setting within 30-day follow-up period, count only the last discharge date.&lt;/P&gt;&lt;P&gt;e.g.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADMIT_DT&amp;nbsp;&amp;nbsp; DISCH_DT&amp;nbsp;&amp;nbsp; DAYS_DIFF&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRIKE&gt;011&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/10/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/13/2018&lt;/STRIKE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#ff0000"&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt; &amp;lt;&amp;lt;&amp;lt; "readmission within 30 days - only include last discharge"&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;011&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/29/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/28/2018&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;022&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/13/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/17/2018&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#ff0000"&gt;55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt; &amp;lt;&amp;lt;&amp;lt; "readmission &amp;gt;30 days"&lt;BR /&gt;&lt;FONT color="#0000ff"&gt;022&amp;nbsp;&amp;nbsp;&amp;nbsp; 4/13/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4/25/2018&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;2. For member with same admission date, but different discharge dates; use the last discharge date.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;e.g.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp; ADMIT_DT&amp;nbsp;&amp;nbsp; DISCH_DT&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRIKE&gt;033&amp;nbsp;&amp;nbsp; 5/11/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5/12/2018&lt;/STRIKE&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&gt;033&amp;nbsp;&amp;nbsp; 5/11/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5/17/2018&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. For member with same discharge date, but different admit date; use the first admit date.&lt;/P&gt;&lt;P&gt;e.g.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp; ADMIT_DT&amp;nbsp;&amp;nbsp; DISCH_DT&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;033&amp;nbsp; 6/11/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6/17/2018&lt;/FONT&gt;&lt;BR /&gt;&lt;STRIKE&gt;033&amp;nbsp; 6/13/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6/17/2018&lt;/STRIKE&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4. For member with the same 1st discharge date and next admit date, count the 1st admit and next discharge date.&lt;/P&gt;&lt;P&gt;e.g.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADMIT_DT&amp;nbsp;&amp;nbsp; DISCH_DT&amp;nbsp; DAYS_DIFF&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;033&amp;nbsp; 08/11/2018&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRIKE&gt;08/17/2018&lt;/STRIKE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color="#ff0000"&gt; 0&lt;/FONT&gt;&lt;BR /&gt;&lt;STRIKE&gt;033&amp;nbsp; 08/17/2018&amp;nbsp;&lt;/STRIKE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;08/23/2018&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to loop through the dataset by using RETAIN STATEMENT. See my codes below --- I'm still a newbie in SAS and trying to figure out how to retain the dates based on the criteria.&amp;nbsp; Any help would be greatly appreciated. Thank you!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;EXPECTED RESULT:&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;ADMIT_DT&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;DISCH_DT&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;011&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;1/29/2018&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;2/28/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;022&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;2/13/2018&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;2/17/2018&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;022&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;4/13/2018&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;4/25/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;033&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;5/11/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;5/17/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;033&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;6/11/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;6/17/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;033&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;08/11/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#0000ff"&gt;08/23/2018&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;DATA DATASET1;
INPUT ID $1-3 ADMIT_DT 4-12 DISCH_DT 13-21;
DATALINES;
011 20180110 20180113
011 20180129 20180228
022 20180213 20180217
022 20180413 20180425
033 20180511 20180512
033 20180511 20180517
033 20180611 20180617
033 20180613 20180617
033 20180811 20180817
033 20180817 20180823
;
RUN;

DATA DATASET2;
SET DATASET1;
ADMIT_DT=INPUT(PUT(ADMIT_DT,8.),YYMMDD8.);
DISCH_DT=INPUT(PUT(DISCH_DT,8.),YYMMDD8.);
FORMAT ADMIT_DT DISCH_DT MMDDYY10.;
RUN;

PROC SORT DATA=DATASET2;
BY ID ADMIT_DT DISCH_DT;
RUN;


DATA RESULT;
SET DATASET2;
DAYGAP=0;
RETAIN STRT_DT END_DT;
FORMAT STRT_DT END_DT MMDDYY10.; 
BY ;
IF FIRST.ID THEN 
     DO;
     STRT_DT=ADMIT_DT;
     END_DT=DISCH_DT;
END;
     ELSE IF INTCK('DAY',END_DT,ADMIT_DT) &amp;lt;=30 AND STRT_DT&amp;gt;ADMIT_DT
     THEN DO;
     DAYGAP=INTCK('DAY',END_DT,ADMIT_DT);    
     END_DT=DISCH_DT;
	 END;

	 ELSE IF INTCK('DAY',END_DT,ADMIT_DT) &amp;gt;30
     THEN DO;
     DAYGAP=INTCK('DAY',END_DT,ADMIT_DT);
     STRT_DT=ADMIT_DT; 
     END_DT=DISCH_DT;
     END;

     ELSE DO;
     DAYGAP=INTCK('DAY',END_DT,ADMIT_DT);
     STRT_DT=ADMIT_DT;
     END_DT=DISCH_DT;
END;
/*DROP ADMS_DT DISCH_DT DAYGAP;*/
/*IF LAST.SBSCR_ID;*/
RUN;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Apr 2020 00:06:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638837#M78199</guid>
      <dc:creator>mrafael03</dc:creator>
      <dc:date>2020-04-10T00:06:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare then retain/remove dates using RETAIN STATEMENT?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638895#M78204</link>
      <description>&lt;P&gt;Per your rule, the first two observations of ID 33 (ADMIT_DT 2018-05-11) need to be removed, as the DISCH_DT is within 30 days of the next ADMIT_DT.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Apr 2020 10:37:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638895#M78204</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-04-10T10:37:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare then retain/remove dates using RETAIN STATEMENT?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638977#M78207</link>
      <description>Good catch!!! Yes that’s correct, it should be removed as the next re-admission was within 30 days.&lt;BR /&gt;&lt;BR /&gt;I meant to give an example for members with the same discharge date, only include 1st admit date and last discharge date.&lt;BR /&gt;&lt;BR /&gt;Thanks for pointing out</description>
      <pubDate>Fri, 10 Apr 2020 14:30:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-compare-then-retain-remove-dates-using-RETAIN-STATEMENT/m-p/638977#M78207</guid>
      <dc:creator>mrafael03</dc:creator>
      <dc:date>2020-04-10T14:30:22Z</dc:date>
    </item>
  </channel>
</rss>

