<?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: Deleting observations for an individual after an event in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571546#M17538</link>
    <description>One way:&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;by id;&lt;BR /&gt;if first.id then flag="Y";&lt;BR /&gt;retain flag;&lt;BR /&gt;if flag = "Y" then output;&lt;BR /&gt;if event = 1 then flag = "N";&lt;BR /&gt;run;</description>
    <pubDate>Sat, 06 Jul 2019 05:09:13 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2019-07-06T05:09:13Z</dc:date>
    <item>
      <title>Deleting observations for an individual after an event</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571543#M17537</link>
      <description>&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;&lt;BR /&gt;Hi all, I have a long dataset (multiple rows per person) and a binary outcome that can change over time. &lt;BR /&gt;I would like to be able to drop all of the observations for a person after their FIRST outcome (ie, no&lt;BR /&gt;rows for anyone after event=1 for the first time. &lt;BR /&gt;&lt;BR /&gt;The trouble I've run into is the different patterns of events. For example: person 1 has an event,&lt;BR /&gt;and then the next row they do NOT have an event - I would want to drop this row AFTER the first event. &lt;BR /&gt;Same for person 2 and 3 as well where they have more rows after their first event=1 that may be event=0&lt;BR /&gt;or event=1. I was trying to code for something of an indicator that is a sum of the events to flag when&lt;BR /&gt;the FIRST time event=1 happens but ran into some trouble with the logic and making something that works&lt;BR /&gt;for the possible patterns in the data. &lt;BR /&gt;&lt;BR /&gt;Data setup below: &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;data&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
  &lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;time&lt;/SPAN&gt; event&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
datalines&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; 
&lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 06 Jul 2019 03:30:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571543#M17537</guid>
      <dc:creator>bgosiker</dc:creator>
      <dc:date>2019-07-06T03:30:28Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations for an individual after an event</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571546#M17538</link>
      <description>One way:&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;by id;&lt;BR /&gt;if first.id then flag="Y";&lt;BR /&gt;retain flag;&lt;BR /&gt;if flag = "Y" then output;&lt;BR /&gt;if event = 1 then flag = "N";&lt;BR /&gt;run;</description>
      <pubDate>Sat, 06 Jul 2019 05:09:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571546#M17538</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-07-06T05:09:13Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations for an individual after an event</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571548#M17539</link>
      <description>&lt;P&gt;To make &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt;&amp;nbsp;'s code a little neater, I'd have flag numeric:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
by id;
if first.id then flag = 1;
retain flag;
if flag;
if event = 1 then flag = 0;
/* if you are sure about the contents of event, you can change this to */
flag = not event;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;but that's my personal preference.&lt;/P&gt;</description>
      <pubDate>Sat, 06 Jul 2019 05:38:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571548#M17539</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-07-06T05:38:19Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations for an individual after an event</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571573#M17540</link>
      <description>&lt;P&gt;FWIW&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
 input id time event;
datalines;
1 1 0
1 2 0
1 3 1
1 4 0
2 1 0 
2 2 1
2 3 1
2 4 1
3 1 0
3 2 1
3 3 0
3 4 1
4 1 0
4 2 0
4 3 0
;
run;


proc sql;
create table want as
select a.*
from have a left join (select id,time from have where event=1 group by id having time=min(time)) b
on a.id=b.id 
where b.time=. or a.time&amp;lt;=b.time
order by a.id,a.time;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 06 Jul 2019 13:39:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-for-an-individual-after-an-event/m-p/571573#M17540</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-07-06T13:39:00Z</dc:date>
    </item>
  </channel>
</rss>

