<?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: Delete all observations for an id if a criterion is met in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423297#M104075</link>
    <description>Thanks for the reply. This one also works if I switch A and B.</description>
    <pubDate>Fri, 22 Dec 2017 10:02:39 GMT</pubDate>
    <dc:creator>AmirSari</dc:creator>
    <dc:date>2017-12-22T10:02:39Z</dc:date>
    <item>
      <title>Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423289#M104070</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I want to delete all observations for an id if the value of 2 comes after 1 for var. Here is what I have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2003&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2003&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2003&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want the id 11 to be eliminated for all years, because the number 2 is coming after 1.&lt;/P&gt;&lt;P&gt;What I want:&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2003&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2003&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate your help.&lt;/P&gt;</description>
      <pubDate>Fri, 22 Dec 2017 09:36:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423289#M104070</guid>
      <dc:creator>AmirSari</dc:creator>
      <dc:date>2017-12-22T09:36:38Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423292#M104071</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID$ year var;
datalines;
11 2000 0
11 2001 0
11 2002 1
11 2003 0
11 2004 2
11 2005 0
11 2006 0
12 2000 0
12 2001 2
12 2002 0
12 2003 0
12 2004 1
12 2005 0
12 2006 0
13 2000 0
13 2001 0
13 2002 0
13 2003 1
13 2004 0
13 2005 0
13 2006 0
;

proc sort data=have;
	by ID;
run;

data help;
	set have;
	by id;
	if first.id then do;
		OneObs=0;
		deleteflag=0;
	end;
	if var=1 then OneObs=1;
	if var=2 &amp;amp; OneObs=1 then deleteflag=1;
	retain OneObs deleteflag 0;
run;

proc sql;
	create table want as
	select ID, year, var
	from have
	where ID not in (select distinct ID from help where deleteflag=1);
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 22 Dec 2017 09:45:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423292#M104071</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2017-12-22T09:45:13Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423294#M104072</link>
      <description>Thank you so much! This is exactly what I wanted.</description>
      <pubDate>Fri, 22 Dec 2017 09:50:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423294#M104072</guid>
      <dc:creator>AmirSari</dc:creator>
      <dc:date>2017-12-22T09:50:28Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423295#M104073</link>
      <description>&lt;P&gt;Something like:&lt;/P&gt;
&lt;PRE&gt;proc sql;
  delete from HAVE 
  where ID in (select distinct A.ID
               from   (select * from HAVE where VAR=1) A
               left join (select * from HAVE where VAR=2) B
               on     A.ID=B.ID
               where  A.YEAR &amp;gt; B.YEAR);
quit;&lt;/PRE&gt;
&lt;P&gt;Note, not tested -&amp;nbsp;&lt;U&gt;&lt;STRONG&gt;post test data in the form of a datastep using the {i} code window.&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Dec 2017 09:53:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423295#M104073</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-12-22T09:53:36Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423296#M104074</link>
      <description>&lt;P&gt;Anytime, glad to 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;Thoug,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/45151"&gt;@RW9&lt;/a&gt;s approach is probably better given that your year variable is increasing with observations.&lt;/P&gt;</description>
      <pubDate>Fri, 22 Dec 2017 09:57:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423296#M104074</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2017-12-22T09:57:27Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423297#M104075</link>
      <description>Thanks for the reply. This one also works if I switch A and B.</description>
      <pubDate>Fri, 22 Dec 2017 10:02:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423297#M104075</guid>
      <dc:creator>AmirSari</dc:creator>
      <dc:date>2017-12-22T10:02:39Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423317#M104083</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID$ year var;
datalines;
11 2000 0
11 2001 0
11 2002 1
11 2003 0
11 2004 2
11 2005 0
11 2006 0
12 2000 0
12 2001 2
12 2002 0
12 2003 0
12 2004 1
12 2005 0
12 2006 0
13 2000 0
13 2001 0
13 2002 0
13 2003 1
13 2004 0
13 2005 0
13 2006 0
;

data temp;
 set have(where=(var in (1 2)));
run;
data temp1;
 set temp;
 if id=lag(id) and lag(var)=1 and var=2;
run;
proc sql;
create table want as
 select * from have where id not in (select id from temp1);
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 22 Dec 2017 14:14:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423317#M104083</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-12-22T14:14:36Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423340#M104086</link>
      <description>&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; have;&lt;/P&gt;&lt;P&gt;input ID$ year var;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;11 2000 0&lt;/P&gt;&lt;P&gt;11 2001 0&lt;/P&gt;&lt;P&gt;11 2002 1&lt;/P&gt;&lt;P&gt;11 2003 0&lt;/P&gt;&lt;P&gt;11 2004 2&lt;/P&gt;&lt;P&gt;11 2005 0&lt;/P&gt;&lt;P&gt;11 2006 0&lt;/P&gt;&lt;P&gt;12 2000 0&lt;/P&gt;&lt;P&gt;12 2001 2&lt;/P&gt;&lt;P&gt;12 2002 0&lt;/P&gt;&lt;P&gt;12 2003 0&lt;/P&gt;&lt;P&gt;12 2004 1&lt;/P&gt;&lt;P&gt;12 2005 0&lt;/P&gt;&lt;P&gt;12 2006 0&lt;/P&gt;&lt;P&gt;13 2000 0&lt;/P&gt;&lt;P&gt;13 2001 0&lt;/P&gt;&lt;P&gt;13 2002 0&lt;/P&gt;&lt;P&gt;13 2003 1&lt;/P&gt;&lt;P&gt;13 2004 0&lt;/P&gt;&lt;P&gt;13 2005 0&lt;/P&gt;&lt;P&gt;13 2006 0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;call missing(_f1,_f2);&lt;/P&gt;&lt;P&gt;do _n_=&lt;STRONG&gt;1&lt;/STRONG&gt; by &lt;STRONG&gt;1&lt;/STRONG&gt; until(last.id);&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by id year;&lt;/P&gt;&lt;P&gt;if missing(_f2) and var=&lt;STRONG&gt;2&lt;/STRONG&gt; then _f2=_n_;&lt;/P&gt;&lt;P&gt;if&amp;nbsp; missing(_f1) and var=&lt;STRONG&gt;1&lt;/STRONG&gt; then _f1=_n_;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;do until(last.id);&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by id year;&lt;/P&gt;&lt;P&gt;if not(not missing(_f2) and not missing(_f1) and _f1&amp;lt;_f2) then output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;drop _:;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Dec 2017 17:19:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423340#M104086</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-22T17:19:51Z</dc:date>
    </item>
    <item>
      <title>Re: Delete all observations for an id if a criterion is met</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423364#M104095</link>
      <description>Thanks everyone for your replies.</description>
      <pubDate>Fri, 22 Dec 2017 18:51:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-all-observations-for-an-id-if-a-criterion-is-met/m-p/423364#M104095</guid>
      <dc:creator>AmirSari</dc:creator>
      <dc:date>2017-12-22T18:51:20Z</dc:date>
    </item>
  </channel>
</rss>

