<?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 Deleting observations from a certain point forward in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547632#M16838</link>
    <description>&lt;P&gt;Hi All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have longitudinal data (long data format) and am trying to drop observations for people who have been lost to follow-up. I am defining this as people who missed 2 visits or more in a row. I made a "visitdiff" variable (which SHOULD be 1 if they have missed no visits), if it is &amp;gt;=2 then I'd like to drop all observations for that person moving forward since I am considering them lost to follow up.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Structure:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;visit&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;lag_visit&lt;/TD&gt;&lt;TD&gt;visitdiff&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;.&lt;/TD&gt;&lt;TD&gt;.&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;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;1&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;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&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;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the data above, for id=1,&amp;nbsp; I'd want to delete all data after visit 2 since the next visit was visit 5 (ie 2 missed visits).&amp;nbsp; Here is the code I currently have to generate the visit differences based off of lag_visit. Any help on deleting all observations after the first instance of&amp;nbsp; visitdiff&amp;gt;2 (since 2 missed visits would make visitdiff=3) for a participant would be greatly appreciated!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Aim2.want; set Aim2.have; 
	by id visit;
	lag_visit=lag(visit); 
	visitdiff=visit-lag_visit; 
	if first.id then visitdiff=.;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 01 Apr 2019 15:19:31 GMT</pubDate>
    <dc:creator>bgosiker</dc:creator>
    <dc:date>2019-04-01T15:19:31Z</dc:date>
    <item>
      <title>Deleting observations from a certain point forward</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547632#M16838</link>
      <description>&lt;P&gt;Hi All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have longitudinal data (long data format) and am trying to drop observations for people who have been lost to follow-up. I am defining this as people who missed 2 visits or more in a row. I made a "visitdiff" variable (which SHOULD be 1 if they have missed no visits), if it is &amp;gt;=2 then I'd like to drop all observations for that person moving forward since I am considering them lost to follow up.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Structure:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;visit&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;lag_visit&lt;/TD&gt;&lt;TD&gt;visitdiff&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;.&lt;/TD&gt;&lt;TD&gt;.&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;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;1&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;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&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;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the data above, for id=1,&amp;nbsp; I'd want to delete all data after visit 2 since the next visit was visit 5 (ie 2 missed visits).&amp;nbsp; Here is the code I currently have to generate the visit differences based off of lag_visit. Any help on deleting all observations after the first instance of&amp;nbsp; visitdiff&amp;gt;2 (since 2 missed visits would make visitdiff=3) for a participant would be greatly appreciated!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Aim2.want; set Aim2.have; 
	by id visit;
	lag_visit=lag(visit); 
	visitdiff=visit-lag_visit; 
	if first.id then visitdiff=.;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Apr 2019 15:19:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547632#M16838</guid>
      <dc:creator>bgosiker</dc:creator>
      <dc:date>2019-04-01T15:19:31Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations from a certain point forward</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547640#M16839</link>
      <description>&lt;P&gt;UNTESTED CODE&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data Aim2.want; 
        retain flag;
        set Aim2.have; 
	by id visit;
	lag_visit=lag(visit); 
	visitdiff=visit-lag_visit; 
	if first.id then do;
            visitdiff=.;
            flag=0;
        end;
        if visitdiff&amp;gt;=2 then flag=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;then you can delete all observations where flag=1&lt;/P&gt;</description>
      <pubDate>Mon, 01 Apr 2019 15:32:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547640#M16839</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-04-01T15:32:58Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations from a certain point forward</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547713#M16842</link>
      <description>Thanks! When I try this is looks like it carries forward flag=1 through almost all of the dataset (multiple id's) instead of restarting at each id.</description>
      <pubDate>Mon, 01 Apr 2019 19:46:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547713#M16842</guid>
      <dc:creator>bgosiker</dc:creator>
      <dc:date>2019-04-01T19:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations from a certain point forward</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547714#M16843</link>
      <description>&lt;P&gt;Well, I said it was untested code. I don't think it should do that, can you show us the code you actually used and the result?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And can you &lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_self"&gt;provide your data as an actual SAS data step&lt;/A&gt; rather than in the form you provided it?&lt;/P&gt;</description>
      <pubDate>Mon, 01 Apr 2019 19:49:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547714#M16843</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-04-01T19:49:35Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations from a certain point forward</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547755#M16844</link>
      <description>&lt;P&gt;An example of how to provide data and possible solution:&lt;/P&gt;
&lt;PRE&gt;Data have;
 input ID  visit  lag_visit visitdiff ;
datalines;
1 1 . . 
1 2 1 1 
1 5 2 3 
1 6 5 1 
1 7 6 1 
1 8 7 1 
1 9 8 1 
2 1 . . 
2 2 1 1 
2 3 2 1 
3 1 . . 
3 2 1 1 
3 3 2 1 
3 5 3 2 
3 6 5 1 
;
run;

data want; 
   set have;
   by id;
   retain drop ;
   if first.id then drop=0;
   if visitdiff&amp;gt;1 then drop=1;
   if drop=0;
   drop drop;
run;&lt;/PRE&gt;</description>
      <pubDate>Mon, 01 Apr 2019 22:25:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/547755#M16844</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-04-01T22:25:22Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting observations from a certain point forward</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/548607#M16853</link>
      <description>Sorry for delayed response -- I actually realized something other code that I was trying to institute in the same data step was messing it up a bit. Once I separated my other bits of code (deleting some specific observations) from it then the code you provided worked perfectly!</description>
      <pubDate>Thu, 04 Apr 2019 18:18:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Deleting-observations-from-a-certain-point-forward/m-p/548607#M16853</guid>
      <dc:creator>bgosiker</dc:creator>
      <dc:date>2019-04-04T18:18:36Z</dc:date>
    </item>
  </channel>
</rss>

