<?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: how to use &amp;quot;do loop&amp;quot; with skips? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150583#M39689</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;
&lt;P&gt;pawan wrote:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Hi Ken, I think you can give a try as below...&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;%DO i = 1 %TO 8, 10 %TO 100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;%DO i = 1 %TO 8, 10 %TO 49, 50 %TO 100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Above code worked for me. All the Best!!&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;Unfortunately, that sort of list works for data step DO loops, but not macro %DO loops:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro loop(dummy);
17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i = 1 %TO 8, 10 %TO 20;
18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;
19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend;
NOTE: The macro LOOP completed compilation without errors.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 instructions 184 bytes.
20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %loop()
ERROR: A character operand was found in the %EVAL function or %IF condition where a 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; numeric operand is required. The condition was: 8, 10 %TO 20 
ERROR: The %TO value of the %DO I loop is invalid.
ERROR: The macro LOOP will stop executing.
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 May 2014 18:07:58 GMT</pubDate>
    <dc:creator>Quentin</dc:creator>
    <dc:date>2014-05-08T18:07:58Z</dc:date>
    <item>
      <title>how to use "do loop" with skips?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150579#M39685</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to do:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%DO i = 1 %to 100; but I want to skip some numbers, e.g. let said 9, and 50;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code is:&lt;/P&gt;&lt;P&gt;%DO i = 1 %TO 8;&lt;/P&gt;&lt;P&gt;%FUNC;&lt;/P&gt;&lt;P&gt;%END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%DO i = 10 %TO 49;&lt;/P&gt;&lt;P&gt;%FUNC;&lt;/P&gt;&lt;P&gt;%END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%DO i = 51 %TO 100;&lt;/P&gt;&lt;P&gt;%FUNC;&lt;/P&gt;&lt;P&gt;%END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any way to make it more efficient? Thanks!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 15:31:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150579#M39685</guid>
      <dc:creator>Ken_oy</dc:creator>
      <dc:date>2014-05-08T15:31:54Z</dc:date>
    </item>
    <item>
      <title>Re: how to use "do loop" with skips?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150580#M39686</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;If you don't mind a %GOTO, you could do something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;%macro loop(dummy);
&amp;nbsp; %local i;
&amp;nbsp; %do i=1 %to 100;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;i=9 or &amp;amp;i=50 %then %goto skipped;

&amp;nbsp;&amp;nbsp;&amp;nbsp; %*Main code here;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %put i=&amp;amp;i;

&amp;nbsp;&amp;nbsp;&amp;nbsp; %skipped:
&amp;nbsp; %end;
%mend loop;

%loop()
&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;There is a popular ballotware suggestion for enhancements to macro looping, to give it more of the features of data step do loops:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://communities.sas.com/ideas/1084"&gt;https://communities.sas.com/ideas/1084&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;/P&gt;&lt;P&gt;--Q.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 15:50:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150580#M39686</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2014-05-08T15:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: how to use "do loop" with skips?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150581#M39687</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%macro testit2;&lt;/P&gt;&lt;P&gt;%DO i = 1 %to 100; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %if ((&amp;amp;i. ne %eval(9)) and (&amp;amp;i. ne %eval(50))) %then %do; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put "i = &amp;amp;i.";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%END;&lt;/P&gt;&lt;P&gt;%mend testit2;&lt;/P&gt;&lt;P&gt;%testit2;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 15:51:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150581#M39687</guid>
      <dc:creator>jwillis</dc:creator>
      <dc:date>2014-05-08T15:51:07Z</dc:date>
    </item>
    <item>
      <title>Re: how to use "do loop" with skips?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150582#M39688</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ken, I think you can give a try as below...&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;%DO i = 1 %TO 8, 10 %TO 100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;%DO i = 1 %TO 8, 10 %TO 49, 50 %TO 100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Above code worked for me. All the Best!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 16:14:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150582#M39688</guid>
      <dc:creator>pawan</dc:creator>
      <dc:date>2014-05-08T16:14:25Z</dc:date>
    </item>
    <item>
      <title>Re: how to use "do loop" with skips?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150583#M39689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;
&lt;P&gt;pawan wrote:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Hi Ken, I think you can give a try as below...&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;%DO i = 1 %TO 8, 10 %TO 100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;%DO i = 1 %TO 8, 10 %TO 49, 50 %TO 100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Above code worked for me. All the Best!!&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;Unfortunately, that sort of list works for data step DO loops, but not macro %DO loops:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro loop(dummy);
17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i = 1 %TO 8, 10 %TO 20;
18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;
19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend;
NOTE: The macro LOOP completed compilation without errors.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 instructions 184 bytes.
20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %loop()
ERROR: A character operand was found in the %EVAL function or %IF condition where a 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; numeric operand is required. The condition was: 8, 10 %TO 20 
ERROR: The %TO value of the %DO I loop is invalid.
ERROR: The macro LOOP will stop executing.
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2014 18:07:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-use-quot-do-loop-quot-with-skips/m-p/150583#M39689</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2014-05-08T18:07:58Z</dc:date>
    </item>
  </channel>
</rss>

