<?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: Remove Row by User ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341706#M78244</link>
    <description>&lt;P&gt;If your requirement is more complex then "delet if the first id and the start_event is 0" the please expand on you condtion.&lt;/P&gt;
&lt;P&gt;If not then perhaps&lt;/P&gt;
&lt;PRE&gt;data want;
   set have;
   by id;
   if first.id and start_event=0 then delete;
run;&lt;/PRE&gt;
&lt;P&gt;assuming the data is sorted by id. If not you would NOTSORTED after ID in the by statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 16 Mar 2017 18:09:35 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2017-03-16T18:09:35Z</dc:date>
    <item>
      <title>Remove Row by User ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341668#M78230</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a dataset with multple rows per a user id and I would like to delete rows that are less than the date that a&amp;nbsp;specific conditionstart for each id.&lt;/P&gt;
&lt;P&gt;This is what it looks like before:&lt;/P&gt;
&lt;TABLE width="337"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="106"&gt;ID&lt;/TD&gt;
&lt;TD width="102"&gt;Start_of_Event&lt;/TD&gt;
&lt;TD width="129"&gt;Collection_Date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;15-Jan&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;16-Jan&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;17-Jan&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;20-Feb&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;28-Feb&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;30-Oct&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;31-Oct&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1-Nov&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;15-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;16-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;17-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;18-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is what it looks like after:&lt;/P&gt;
&lt;TABLE width="337"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="106"&gt;ID&lt;/TD&gt;
&lt;TD width="102"&gt;Start_of_Event&lt;/TD&gt;
&lt;TD width="129"&gt;Collection_Date&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;16-Jan&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;17-Jan&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;20-Feb&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;28-Feb&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;31-Oct&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1-Nov&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;15-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;16-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;17-Jul&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;18-Jul&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;P&gt;I have tried using logic from &lt;A href="https://communities.sas.com/t5/Base-SAS-Programming/Comparing-a-variable-from-one-record-to-the-previous-record/td-p/111442" target="_self"&gt;this&lt;/A&gt;, &lt;A href="http://support.sas.com/resources/papers/proceedings11/091-2011.pdf" target="_self"&gt;this&lt;/A&gt;, and&amp;nbsp;&lt;A href="https://communities.sas.com/t5/Base-SAS-Programming/Create-an-array-of-lag-functions-for150-variables/td-p/157974" target="_self"&gt;this&lt;/A&gt;, but I have not had much luck. I was trying the lag function, but from what I have read it doesn't work well in conditionals or by id. I have also tried using first.id, but not all ids have dates that are less than the start date.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any help would be much appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;EDIT: To expand&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To expand: I would like like to delete observations that are&lt;STRONG&gt; less than the collection date of the condition&lt;/STRONG&gt; (&lt;SPAN&gt;Start_of_Event = 1). For&amp;nbsp;example: ID = 1 has a single observation that less than the (15-Jan &amp;lt; 16-Jan), only one observation will be removed. ID = 2 does not have any events prior, so no rows will be removed for that ID. I have sorted the data by id and collection date.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Mar 2017 19:04:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341668#M78230</guid>
      <dc:creator>daszlosek</dc:creator>
      <dc:date>2017-03-16T19:04:32Z</dc:date>
    </item>
    <item>
      <title>Re: Remove Row by User ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341676#M78232</link>
      <description>&lt;P&gt;Hello,&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 ID;
retain start;
if first.ID then start=0;

if start=0 then start=Start_of_Event;

if start;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 16 Mar 2017 17:00:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341676#M78232</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-03-16T17:00:54Z</dc:date>
    </item>
    <item>
      <title>Re: Remove Row by User ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341706#M78244</link>
      <description>&lt;P&gt;If your requirement is more complex then "delet if the first id and the start_event is 0" the please expand on you condtion.&lt;/P&gt;
&lt;P&gt;If not then perhaps&lt;/P&gt;
&lt;PRE&gt;data want;
   set have;
   by id;
   if first.id and start_event=0 then delete;
run;&lt;/PRE&gt;
&lt;P&gt;assuming the data is sorted by id. If not you would NOTSORTED after ID in the by statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Mar 2017 18:09:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341706#M78244</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-03-16T18:09:35Z</dc:date>
    </item>
    <item>
      <title>Re: Remove Row by User ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341711#M78245</link>
      <description>&lt;P&gt;I sthis what you need? I get the results you have listed:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Start_of_Event Collection_Date  date9.;
format Collection_Date date9.;
cards;
1 0 15Jan2017
1 1 16Jan2017
1 0 17Jan2017 
2 1 20Feb2017 
2 0 28Feb2017 
3 0 30Oct2017 
3 1 31Oct2017 
3 0 1Nov2017 
4 1 15Jul2017 
4 0 16Jul2017 
4 0 17Jul2017 
4 0 18Jul2017 
;
run;

proc sql;
create table want as
select a.*
from have a, have b
where a.id=b.id
and a.Collection_Date&amp;gt;=b.Collection_Date
and b.Start_of_Event=1;
quit;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 16 Mar 2017 18:17:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341711#M78245</guid>
      <dc:creator>nehalsanghvi</dc:creator>
      <dc:date>2017-03-16T18:17:05Z</dc:date>
    </item>
    <item>
      <title>Re: Remove Row by User ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341845#M78304</link>
      <description>&lt;PRE&gt;

data have;
input ID Start_of_Event Collection_Date  date9.;
format Collection_Date date9.;
cards;
1 0 15Jan2017
1 1 16Jan2017
1 0 17Jan2017 
2 1 20Feb2017 
2 0 28Feb2017 
3 0 30Oct2017 
3 1 31Oct2017 
3 0 1Nov2017 
4 1 15Jul2017 
4 0 16Jul2017 
4 0 17Jul2017 
4 0 18Jul2017 
;
run;
data want;
 set have;
 by ID;
 retain found;
 if first.id then found=0;
 if start_of_event=1 then found=1;
 if found;
run;


&lt;/PRE&gt;</description>
      <pubDate>Fri, 17 Mar 2017 03:14:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Remove-Row-by-User-ID/m-p/341845#M78304</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-03-17T03:14:35Z</dc:date>
    </item>
  </channel>
</rss>

