<?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 delete observations based on dates in a by group in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696145#M212579</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
input Patient_ID  visit_ID  Date :ddmmyy8. Diagnose :$3.;
format date yymmdd10.;
datalines;
1 1 01.01.20  111
1 2 02.01.20  154
1 3 03.01.20  200
1 4 04.01.20  085
2 5 01.06.20  119
2 6 02.06.20  543
2 7 03.06.20  200
3 8 01.09.19  746
3 9 02.09.19  549
3 10  03.09.19  200
3 11  04.09.19  432
3 12  05.09.19  543
;

data want;
 do _n_=0 by 0 until(last.patient_id);
  set have;
  by patient_id;
  if not _n_ then output;
  if Diagnose='200' then _n_=constant('e');
 end;
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/351176"&gt;@Joachim133&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp;'s solution flag cut is elegance personified, i&amp;nbsp;&lt;SPAN&gt;wanted to have some fun&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 03 Nov 2020 10:52:45 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2020-11-03T10:52:45Z</dc:date>
    <item>
      <title>How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696130#M212566</link>
      <description>&lt;P&gt;Hello.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset of patients having multiple hospital visits. Patients are included in my study, when they have a specific diagnose. I need to keep all visits and diagnoses prior to the inclusion date, and deleting all visits after the inclusion date.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example of dataset (not real data). Inclusion when a patient have diagnose code '200':&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Patient_ID&lt;/TD&gt;&lt;TD&gt;visit_ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Diagnose&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;1&lt;/TD&gt;&lt;TD&gt;01.01.20&lt;/TD&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;Keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;02.01.20&lt;/TD&gt;&lt;TD&gt;154&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;03.01.20&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;keep observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;04.01.20&lt;/TD&gt;&lt;TD&gt;085&lt;/TD&gt;&lt;TD&gt;delete observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;01.06.20&lt;/TD&gt;&lt;TD&gt;119&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;02.06.20&lt;/TD&gt;&lt;TD&gt;543&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;03.06.20&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;01.09.19&lt;/TD&gt;&lt;TD&gt;746&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;02.09.19&lt;/TD&gt;&lt;TD&gt;549&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;03.09.19&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;keep&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;04.09.19&lt;/TD&gt;&lt;TD&gt;432&lt;/TD&gt;&lt;TD&gt;delete&amp;nbsp;observation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;05.09.19&lt;/TD&gt;&lt;TD&gt;543&lt;/TD&gt;&lt;TD&gt;delete observation&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;How can this be done?&lt;/P&gt;&lt;P&gt;I use SAS 9.4.&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 03 Nov 2020 09:40:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696130#M212566</guid>
      <dc:creator>Joachim133</dc:creator>
      <dc:date>2020-11-03T09:40:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696133#M212569</link>
      <description>&lt;P&gt;Retain a flag variable:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Patient_ID  visit_ID  Date :ddmmyy8. Diagnose :$3.;
format date yymmdd10.;
datalines;
1 1 01.01.20  111
1 2 02.01.20  154
1 3 03.01.20  200
1 4 04.01.20  085
2 5 01.06.20  119
2 6 02.06.20  543
2 7 03.06.20  200
3 8 01.09.19  746
3 9 02.09.19  549
3 10  03.09.19  200
3 11  04.09.19  432
3 12  05.09.19  543
;

data want;
set have;
by patient_id;
retain flag;
if first.patient_id then flag = 1;
if flag;
if diagnose = "200" then flag = 0;
drop flag;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 03 Nov 2020 09:51:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696133#M212569</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-03T09:51:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696135#M212570</link>
      <description>Hi,&lt;BR /&gt;This can be done easy using proc sql,&lt;BR /&gt;/* ------*/&lt;BR /&gt;proc sql;&lt;BR /&gt;create view FILTER as /* Creating a view you keep the patient_dataset intact */&lt;BR /&gt;select * from &amp;lt;patient_dataset&amp;gt;&lt;BR /&gt;where Diagnose = &amp;lt;diagnose Id&amp;gt; /* Filter for diagnose, use semicolons if the variable Diagnose is text */&lt;BR /&gt;and Date &amp;lt;= '&amp;lt;diagnose date literal&amp;gt;'d /* Filter for date */&lt;BR /&gt;;&lt;BR /&gt;quit;&lt;BR /&gt;/* ------*/&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 03 Nov 2020 10:00:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696135#M212570</guid>
      <dc:creator>ldamar</dc:creator>
      <dc:date>2020-11-03T10:00:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696138#M212573</link>
      <description>&lt;P&gt;Thank you!&lt;BR /&gt;However, I forgot to mention, that the including diagnose '200' may come several times per patient_ID. The cutoff should be the first time, the patient is admitted with the diagnose '200'. Does the code also work like that?&lt;/P&gt;</description>
      <pubDate>Tue, 03 Nov 2020 10:15:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696138#M212573</guid>
      <dc:creator>Joachim133</dc:creator>
      <dc:date>2020-11-03T10:15:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696140#M212574</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	infile datalines dlm="09"x;
	input Patient_ID visit_ID Date:mmddyy10. Diagnose;
	format date mmddyys10.;
	datalines;
1	1	01.01.20	111	Keep observation
1	2	02.01.20	154	keep observation
1	3	03.01.20	200	keep observation
1	4	04.01.20	085	delete observation
2	5	01.06.20	119	keep observation
2	6	02.06.20	543	keep observation
2	7	03.06.20	200	keep observation
3	8	01.09.19	746	keep observation
3	9	02.09.19	549	keep observation
3	10	03.09.19	200	keep observation
3	11	04.09.19	432	delete observation
3	12	05.09.19	543	delete observation
;
run;

data want;
	do until(last.patient_id or diagnose=200);
		set have;
		by patient_id;
		if first.patient_id then _N_=0;
		if _N_=0 then output;
	end;
run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 03 Nov 2020 10:25:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696140#M212574</guid>
      <dc:creator>hhinohar</dc:creator>
      <dc:date>2020-11-03T10:25:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696142#M212576</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/351176"&gt;@Joachim133&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thank you!&lt;BR /&gt;However, I forgot to mention, that the including diagnose '200' may come several times per patient_ID. The cutoff should be the first time, the patient is admitted with the diagnose '200'. Does the code also work like that?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Yes. Once the flag has been set to zero, it will stay that way until the next patient_id comes up.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Nov 2020 10:34:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696142#M212576</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-03T10:34:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696143#M212577</link>
      <description>This works, thanks!</description>
      <pubDate>Tue, 03 Nov 2020 10:35:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696143#M212577</guid>
      <dc:creator>Joachim133</dc:creator>
      <dc:date>2020-11-03T10:35:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696145#M212579</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
input Patient_ID  visit_ID  Date :ddmmyy8. Diagnose :$3.;
format date yymmdd10.;
datalines;
1 1 01.01.20  111
1 2 02.01.20  154
1 3 03.01.20  200
1 4 04.01.20  085
2 5 01.06.20  119
2 6 02.06.20  543
2 7 03.06.20  200
3 8 01.09.19  746
3 9 02.09.19  549
3 10  03.09.19  200
3 11  04.09.19  432
3 12  05.09.19  543
;

data want;
 do _n_=0 by 0 until(last.patient_id);
  set have;
  by patient_id;
  if not _n_ then output;
  if Diagnose='200' then _n_=constant('e');
 end;
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/351176"&gt;@Joachim133&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp;'s solution flag cut is elegance personified, i&amp;nbsp;&lt;SPAN&gt;wanted to have some fun&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Nov 2020 10:52:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696145#M212579</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-11-03T10:52:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696149#M212582</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Patient_ID  visit_ID  Date :ddmmyy8. Diagnose :$3.;
format date yymmdd10.;
datalines;
1 1 01.01.20  111
1 2 02.01.20  154
1 3 03.01.20  200
1 4 04.01.20  085
2 5 01.06.20  119
2 6 02.06.20  543
2 7 03.06.20  200
3 8 01.09.19  746
3 9 02.09.19  549
3 10  03.09.19  200
3 11  04.09.19  432
3 12  05.09.19  543
;
Proc sql;
 create table want as
 select *
 from have
 group by patient_id
 having  date&amp;lt;=min(ifn(diagnose='200',date,.)) 
 order by patient_id,visit_id;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 03 Nov 2020 11:04:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696149#M212582</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-11-03T11:04:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete observations based on dates in a by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696460#M212738</link>
      <description>Hey Kurt.&lt;BR /&gt;&lt;BR /&gt;That sounds great, thank you very much.&lt;BR /&gt;I didnt see your response, before I flagged hhinhar's response as solution, but I know yours work just as well.&lt;BR /&gt;regards</description>
      <pubDate>Wed, 04 Nov 2020 12:20:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-observations-based-on-dates-in-a-by-group/m-p/696460#M212738</guid>
      <dc:creator>Joachim133</dc:creator>
      <dc:date>2020-11-04T12:20:58Z</dc:date>
    </item>
  </channel>
</rss>

