<?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: Loop do until all observations of variable equal 0 in SAS Data Science</title>
    <link>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841004#M10348</link>
    <description>I've updated the post. Sorry if it wasn't clear</description>
    <pubDate>Wed, 26 Oct 2022 19:19:17 GMT</pubDate>
    <dc:creator>duft</dc:creator>
    <dc:date>2022-10-26T19:19:17Z</dc:date>
    <item>
      <title>Loop do until all observations of variable equal 0</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841002#M10346</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to write codes for a loop to simulate Arrivals and Departures. There's only one server (M/M/1) and it is a FCFS. So if someone arrives when the server is busy, then they have to wait for the server to be free.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;data have;
	input id time_of_arrival service_time;
	datalines;
	  1 1.5 2
	  2 2 1  
	  3 3.5 2  
	  4 8 1  
	  5 10 2  
	  6 12 1  
	  7 13 2  
	  8 14 2  
	  9 16 3  
 run;
 
 data have;
	set have;
	time_of_leaving = time_of_arrival + service_time;
	lag_time_of_leaving = lag(time_of_leaving);
	if lag_time_of_leaving &amp;gt; time_of_arrival then flag = 1; else flag = 0;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I thought about creating another variable = 0 (flag2) and loop until flag = flag2 (see following code - it added it before the run; command in the previous code). However, the program has been running for the past hour and my initial thought is that there must be a more efficient way of doing it.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;	flag2 = 0;
	do until (flag = flag2);
		if flag = 1 then time_of_leaving = lag_time_of_leaving + service_time;
		lag_time_of_leaving = lag(time_of_leaving);
		if lag_time_of_leaving &amp;gt; time_of_arrival then flag = 1; else flag = 0;
	end;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the end, I'd like for the results to be as followed&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;time_of_arrival&lt;/TD&gt;&lt;TD&gt;service_time&lt;/TD&gt;&lt;TD&gt;time_of_leaving&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1.5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3.5&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;4.5 (server is free at 3.5 + service_time of 1)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3.5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;6.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance for your help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Oct 2022 19:18:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841002#M10346</guid>
      <dc:creator>duft</dc:creator>
      <dc:date>2022-10-26T19:18:51Z</dc:date>
    </item>
    <item>
      <title>Re: Loop do until all observations of variable equal 0</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841003#M10347</link>
      <description>&lt;P&gt;I don't fully understand this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you post what your desired result looks like?&lt;/P&gt;</description>
      <pubDate>Wed, 26 Oct 2022 19:13:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841003#M10347</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-10-26T19:13:52Z</dc:date>
    </item>
    <item>
      <title>Re: Loop do until all observations of variable equal 0</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841004#M10348</link>
      <description>I've updated the post. Sorry if it wasn't clear</description>
      <pubDate>Wed, 26 Oct 2022 19:19:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841004#M10348</guid>
      <dc:creator>duft</dc:creator>
      <dc:date>2022-10-26T19:19:17Z</dc:date>
    </item>
    <item>
      <title>Re: Loop do until all observations of variable equal 0</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841118#M10350</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 input id time_of_arrival service_time;
 retain want;
    want=ifn(time_of_arrival&amp;lt;want,want+service_time,time_of_arrival+service_time);
 datalines;
   1 1.5 2
   2 2 1  
   3 3.5 2  
   4 8 1  
   5 10 2  
   6 12 1  
   7 13 2  
   8 14 2  
   9 16 3  
 run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 27 Oct 2022 12:03:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841118#M10350</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-10-27T12:03:33Z</dc:date>
    </item>
    <item>
      <title>Re: Loop do until all observations of variable equal 0</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841125#M10351</link>
      <description>Thank you! I never used ifn, definitely something to remember.</description>
      <pubDate>Thu, 27 Oct 2022 12:16:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Loop-do-until-all-observations-of-variable-equal-0/m-p/841125#M10351</guid>
      <dc:creator>duft</dc:creator>
      <dc:date>2022-10-27T12:16:45Z</dc:date>
    </item>
  </channel>
</rss>

