<?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: Do Until Loop in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216090#M39834</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have one more question about the last.repid function. I've added 4 more observations to the dataset:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="203"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD align="right" height="20" width="64"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63" width="75"&gt;11/4/2009&lt;/TD&gt;&lt;TD align="right" width="64"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;4/5/2013&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;3/14/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;1/2/2015&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to keep only the first 2 observations since I'm only interested in the volunteers until they become positive. I've used the same code you gave me and it does what I want. However, I thought last.repid would start from the bottom, work up the rows, giving me the last 2 observations. Why doesn't it?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Apr 2015 12:23:32 GMT</pubDate>
    <dc:creator>sarahsasuser</dc:creator>
    <dc:date>2015-04-11T12:23:32Z</dc:date>
    <item>
      <title>Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216084#M39828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have an issue that I think might work best with a do until loop. I have patient data for multiple hospital admissions and I want to keep all the records up until and including their first positive test, but delete the records after the first positive record. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's the data I have:&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="203"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="20" width="64"&gt;repid &lt;/TD&gt;&lt;TD width="75"&gt;date&lt;/TD&gt;&lt;TD width="64"&gt;postive&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;125&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;1/12/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;125&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;1/15/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;4/12/2013&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;11/12/2013&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;5/6/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;6/7/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;11/20/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;1/10/2015&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;3/15/2015&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;88459&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;1/6/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;454878&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;12/8/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;2/9/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;3/18/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;6/2/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;9/28/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;12/1/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Want:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="width: 203px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="20" width="64"&gt;repid &lt;/TD&gt;&lt;TD width="75"&gt;date&lt;/TD&gt;&lt;TD width="64"&gt;tive&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;125&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;1/12/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;125&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;1/15/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;4/12/2013&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;11/12/2013&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;5/6/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;6/7/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;1447&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;11/20/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;88459&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;1/6/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;454878&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;12/8/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;2/9/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;3/18/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;6/2/2014&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;316&lt;/TD&gt;&lt;TD align="right" class="xl65"&gt;9/28/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sarah&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 04 Apr 2015 02:37:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216084#M39828</guid>
      <dc:creator>sarahsasuser</dc:creator>
      <dc:date>2015-04-04T02:37:18Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216085#M39829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Maybe not the DO UNTIL you had in mind...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;input repid date :mmddyy. positive;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;format date yymmdd10.;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;datalines;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;125 1/12/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;125 1/15/2014 1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 4/12/2013 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 11/12/2013 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 5/6/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 6/7/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 11/20/2014 1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 1/10/2015 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1447 3/15/2015 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;88459 1/6/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;454878 12/8/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;316 2/9/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;316 3/18/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;316 6/2/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;316 9/28/2014 1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;316 12/1/2014 0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc sort data=have; by repid date; run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data want;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;do until(last.repid);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have; by repid;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not pos then output;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if positive then pos = 1;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;drop pos;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc print data=want noobs; run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 04 Apr 2015 03:36:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216085#M39829</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2015-04-04T03:36:33Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216086#M39830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;input repid date :mmddyy. positive;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;format date yymmdd10.;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;125 1/12/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;125 1/15/2014 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 4/12/2013 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 11/12/2013 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 5/6/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 6/7/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 11/20/2014 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 1/10/2015 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1447 3/15/2015 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;88459 1/6/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;454878 12/8/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;316 2/9/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;316 3/18/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;316 6/2/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;316 9/28/2014 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;316 12/1/2014 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;do _n_=1 by 1 until(last.repid);&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by repid notsorted;&lt;/P&gt;&lt;P&gt;if positive&amp;nbsp;&amp;nbsp;&amp;nbsp; then n=_n_;&lt;/P&gt;&lt;P&gt;end;&amp;nbsp; &lt;/P&gt;&lt;P&gt;do _n_=1 by 1 until(last.repid);&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by repid notsorted;&lt;/P&gt;&lt;P&gt;if _n_&amp;lt;=n or n=. then output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;drop n;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naveen Srinivasan&lt;/P&gt;&lt;P&gt;L&amp;amp;T Infotech&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 04 Apr 2015 07:35:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216086#M39830</guid>
      <dc:creator>naveen_srini</dc:creator>
      <dc:date>2015-04-04T07:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216087#M39831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks PGStats!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you mind walking me through the code a bit? the last.repid takes the last observation for that repid and outputs all the pos=0 until it gets to positive=1. Why do we need to make the variable 'pos'? This seems like an extra step. Could we have the following code? If not, why not?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do until (last.repid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by repid;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if positive ^=1 then output;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, why are the set and by statements inside of the do loop?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for you help!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Apr 2015 19:48:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216087#M39831</guid>
      <dc:creator>sarahsasuser</dc:creator>
      <dc:date>2015-04-09T19:48:20Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216088#M39832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Variable &lt;STRONG&gt;pos&lt;/STRONG&gt; only takes two values: missing or 1. It is set to missing at the beginning of every iteration of the implicit datastep loop. In a logical test, a missing value is taken as &lt;STRONG&gt;FALSE&lt;/STRONG&gt;. Thus every record in a &lt;STRONG&gt;repid&lt;/STRONG&gt; group is output until after &lt;STRONG&gt;pos&lt;/STRONG&gt; is assigned a value, i.e. after &lt;STRONG&gt;positive=1&lt;/STRONG&gt; has been met. Once it is assigned a value, variable &lt;STRONG&gt;pos&lt;/STRONG&gt; only goes back to missing at the beginning of the next &lt;STRONG&gt;repid&lt;/STRONG&gt; group. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Apr 2015 21:16:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216088#M39832</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2015-04-09T21:16:00Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216089#M39833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, this is very helpful. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Apr 2015 13:13:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216089#M39833</guid>
      <dc:creator>sarahsasuser</dc:creator>
      <dc:date>2015-04-10T13:13:00Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216090#M39834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have one more question about the last.repid function. I've added 4 more observations to the dataset:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="203"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD align="right" height="20" width="64"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63" width="75"&gt;11/4/2009&lt;/TD&gt;&lt;TD align="right" width="64"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;4/5/2013&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;3/14/2014&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" height="20"&gt;412&lt;/TD&gt;&lt;TD align="right" class="xl63"&gt;1/2/2015&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to keep only the first 2 observations since I'm only interested in the volunteers until they become positive. I've used the same code you gave me and it does what I want. However, I thought last.repid would start from the bottom, work up the rows, giving me the last 2 observations. Why doesn't it?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Apr 2015 12:23:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216090#M39834</guid>
      <dc:creator>sarahsasuser</dc:creator>
      <dc:date>2015-04-11T12:23:32Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216091#M39835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Unless you use the &lt;STRONG&gt;point=&lt;/STRONG&gt; option, the &lt;STRONG&gt;set&lt;/STRONG&gt; statement reads dataset observations one by one in the order they are stored. &lt;STRONG&gt;last.repid&lt;/STRONG&gt; is a variable created by SAS that takes the value of 1 (true) when the next record in the dataset is not from the same &lt;STRONG&gt;repid&lt;/STRONG&gt; group.&lt;/P&gt;&lt;P&gt;Read the documentation about &lt;STRONG&gt;first.&lt;/STRONG&gt; and &lt;STRONG&gt;last.&lt;/STRONG&gt; automatic variables to understand what's going on.&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/lrcon/67885/HTML/default/viewer.htm#n01a08zkzy5igbn173zjz82zsi1s.htm" title="http://support.sas.com/documentation/cdl/en/lrcon/67885/HTML/default/viewer.htm#n01a08zkzy5igbn173zjz82zsi1s.htm"&gt;SAS(R) 9.4 Language Reference: Concepts, Fourth Edition&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Apr 2015 18:50:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop/m-p/216091#M39835</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2015-04-12T18:50:19Z</dc:date>
    </item>
  </channel>
</rss>

