<?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 with Condition on Running Total in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528596#M144299</link>
    <description>&lt;P&gt;Thank you so much! This worked!!&lt;/P&gt;&lt;P&gt;Michelle&lt;/P&gt;</description>
    <pubDate>Sun, 20 Jan 2019 02:45:35 GMT</pubDate>
    <dc:creator>topryde</dc:creator>
    <dc:date>2019-01-20T02:45:35Z</dc:date>
    <item>
      <title>Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528586#M144291</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the dataset called Have 3 (provided below) where i wanted to do a running total by SID until the running total reaches 1, of which then it should restart the calculation. The ending result i wanted to achieve is like table below: For example for SID 11, running total of row 1 and 2 is 1, so from row 3 the calculation should restart until it get to row 4 where the running total is 1 again.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Row&lt;/TD&gt;&lt;TD&gt;SID&lt;/TD&gt;&lt;TD&gt;amt&lt;/TD&gt;&lt;TD&gt;running_total(Until amt=1)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;0.5&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;11&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;0.75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;44&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;44&lt;/TD&gt;&lt;TD&gt;0.5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;44&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;TD&gt;0.25&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried something like below, but it came out so wrong!!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Data&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;test;&lt;/P&gt;&lt;P&gt;Do Until (running_total =&lt;STRONG&gt;1&lt;/STRONG&gt;);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set HAVE3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; By SID;&lt;/P&gt;&lt;P&gt;If first.sid then running_total =&lt;STRONG&gt;0&lt;/STRONG&gt;;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Running_total + AMT;&lt;/P&gt;&lt;P&gt;End;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am wondering if someone could give me a hand on this?? Many many thanks!&lt;/P&gt;&lt;P&gt;Below is the dataset: have3 i've used.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;have3;&lt;/P&gt;&lt;P&gt;infile cards expandtabs truncover;&lt;/P&gt;&lt;P&gt;input Row&amp;nbsp; SID $ amt $&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;cards;&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp; 11 &amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;6&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;7 &amp;nbsp;&amp;nbsp; 22 &amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;8&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&amp;nbsp;&amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp; 22&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;11&amp;nbsp;&amp;nbsp; 22&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp; 22&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp; 44&amp;nbsp;&amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;14&amp;nbsp;&amp;nbsp; 44&amp;nbsp;&amp;nbsp; 0.5&amp;nbsp;&lt;/P&gt;&lt;P&gt;15&amp;nbsp;&amp;nbsp; 44&amp;nbsp;&amp;nbsp; 0.25&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thankyou&lt;/P&gt;&lt;P&gt;Michelle&lt;/P&gt;</description>
      <pubDate>Sun, 20 Jan 2019 01:02:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528586#M144291</guid>
      <dc:creator>topryde</dc:creator>
      <dc:date>2019-01-20T01:02:59Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528588#M144293</link>
      <description>&lt;P&gt;Is this what you want?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  do until (last.sid or total &amp;gt;= 1);
    set have3;
    by sid;
    total = sum(total,amt);
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    total    row    sid     amt

 1      1.00      2    11     0.50
 2      1.00      4    11     0.50
 3      0.50      6    11     0.25
 4      1.00      8    22     0.50
 5      1.00     12    22     0.25
 6      1.00     14    44     0.50
 7      0.25     15    44     0.25
&lt;/PRE&gt;</description>
      <pubDate>Sun, 20 Jan 2019 01:10:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528588#M144293</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-01-20T01:10:26Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528591#M144294</link>
      <description>&lt;P&gt;Thank you Tom. Is it possible to still have the running total showing for each of the 15 rows in the output table?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Michelle&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 20 Jan 2019 01:17:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528591#M144294</guid>
      <dc:creator>topryde</dc:creator>
      <dc:date>2019-01-20T01:17:02Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528594#M144297</link>
      <description>If you want to output all of the observations and not just the totals then add an OUTPUT statement inside the DO loop.&lt;BR /&gt;</description>
      <pubDate>Sun, 20 Jan 2019 02:01:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528594#M144297</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-01-20T02:01:15Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528595#M144298</link>
      <description>Perhaps a simple program?&lt;BR /&gt;&lt;BR /&gt;Data want;&lt;BR /&gt;Set have;&lt;BR /&gt;By sid;&lt;BR /&gt;Running_total + amt;&lt;BR /&gt;If first.sid or running_total &amp;gt; 1 then &lt;BR /&gt;Running_total = amt;&lt;BR /&gt;Run;&lt;BR /&gt;</description>
      <pubDate>Sun, 20 Jan 2019 02:36:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528595#M144298</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-01-20T02:36:08Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528596#M144299</link>
      <description>&lt;P&gt;Thank you so much! This worked!!&lt;/P&gt;&lt;P&gt;Michelle&lt;/P&gt;</description>
      <pubDate>Sun, 20 Jan 2019 02:45:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528596#M144299</guid>
      <dc:creator>topryde</dc:creator>
      <dc:date>2019-01-20T02:45:35Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528597#M144300</link>
      <description>&lt;P&gt;Hi Astounding,&lt;/P&gt;&lt;P&gt;Thanks so much! This has also worked!!&lt;/P&gt;&lt;P&gt;Michelle&lt;/P&gt;</description>
      <pubDate>Sun, 20 Jan 2019 02:46:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528597#M144300</guid>
      <dc:creator>topryde</dc:creator>
      <dc:date>2019-01-20T02:46:25Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528599#M144301</link>
      <description>&lt;P&gt;What do you want to happen when running total is GREATER than 1?&lt;/P&gt;
&lt;P&gt;For example:&amp;nbsp; 0.5, 0.7, 0.2&lt;/P&gt;
&lt;P&gt;Do you want to output to be:&lt;/P&gt;
&lt;PRE&gt;0.5 0.5
0.7 1.2
0.2 0.2&lt;/PRE&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;PRE&gt;0.5 0.5
0.7 0.7
0.2 0.9&lt;/PRE&gt;
&lt;P&gt;Or perhaps split the value into two observations?&lt;/P&gt;
&lt;PRE&gt;0.5 0.5
0.5 1.0
0.2 0.2
0.2 0.4&lt;/PRE&gt;</description>
      <pubDate>Sun, 20 Jan 2019 02:52:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/528599#M144301</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-01-20T02:52:44Z</dc:date>
    </item>
    <item>
      <title>Re: Do Until Loop with Condition on Running Total</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/530559#M145112</link>
      <description>&lt;P&gt;Sorry, if this is response is not too late yet...&lt;/P&gt;&lt;P&gt;if the running total is greater than 1, i think i'd prefer option 1.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;0.5 0.5
0.7 1.2
0.2 0.2&lt;/PRE&gt;&lt;P&gt;Michelle&lt;/P&gt;</description>
      <pubDate>Mon, 28 Jan 2019 08:50:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-Until-Loop-with-Condition-on-Running-Total/m-p/530559#M145112</guid>
      <dc:creator>topryde</dc:creator>
      <dc:date>2019-01-28T08:50:47Z</dc:date>
    </item>
  </channel>
</rss>

