<?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: %IF-%THEN-%ELSE behavior with %DO (iterative) in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70858#M15321</link>
    <description>And, in addition to Scott's suggestions, this paper provides a good introduction to macro processing concepts and Step 9 shows how to use %IF to conditionally execute whole program steps or conditionally insert selected statements into compiled code:&lt;BR /&gt;
&lt;A href="http://www2.sas.com/proceedings/sugi28/056-28.pdf" target="_blank"&gt;http://www2.sas.com/proceedings/sugi28/056-28.pdf&lt;/A&gt; &lt;BR /&gt;
 &lt;BR /&gt;
cynthia</description>
    <pubDate>Wed, 09 Feb 2011 22:23:56 GMT</pubDate>
    <dc:creator>Cynthia_sas</dc:creator>
    <dc:date>2011-02-09T22:23:56Z</dc:date>
    <item>
      <title>%IF-%THEN-%ELSE behavior with %DO (iterative)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70854#M15317</link>
      <description>I have a macro which uses a %DO statement to run a datastep four times.  Each time, I set the variable "var" equal to the value contained in the array "letters" at the index of &amp;amp;i. I then use this datastep variable "var" as the condition for my %IF-%THEN-%ELSE statement.  See below:&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
%macro test2;&lt;BR /&gt;
&lt;BR /&gt;
	data c1;&lt;BR /&gt;
	a='a';&lt;BR /&gt;
	b='b';&lt;BR /&gt;
	c='';&lt;BR /&gt;
	d='d';&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
	%do iterator = 1 %to 4;&lt;BR /&gt;
		data c2;&lt;BR /&gt;
		set c1;&lt;BR /&gt;
		array letters (4) $25 a b c d;&lt;BR /&gt;
		x=&amp;amp;iterator;&lt;BR /&gt;
		var=strip(letters&lt;X&gt;);&lt;BR /&gt;
		put +5 "Iteration Number:" x +3 "var=" var;&lt;BR /&gt;
&lt;BR /&gt;
		%if var = 'b' %then %do;&lt;BR /&gt;
			put "WARNING-" +4 "The macro condition was true!!!";&lt;BR /&gt;
			put;&lt;BR /&gt;
		%end;&lt;BR /&gt;
		%else %do;&lt;BR /&gt;
			put "ERROR-" +4 "The macro condition was false!!!";&lt;BR /&gt;
			put;&lt;BR /&gt;
		%end;&lt;BR /&gt;
&lt;BR /&gt;
		run;&lt;BR /&gt;
&lt;BR /&gt;
	%end;&lt;BR /&gt;
%mend;&lt;BR /&gt;
&lt;BR /&gt;
%test2;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
The problem I am having is that the %if statement always evaluates the same (either true or false) for all 4 iterations of the datastep c2.  My output is below:&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
MLOGIC(TEST2):  Beginning execution.&lt;BR /&gt;
MPRINT(TEST2):   data c1;&lt;BR /&gt;
MPRINT(TEST2):   a='a';&lt;BR /&gt;
MPRINT(TEST2):   b='b';&lt;BR /&gt;
MPRINT(TEST2):   c='';&lt;BR /&gt;
MPRINT(TEST2):   d='d';&lt;BR /&gt;
MPRINT(TEST2):   run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: The data set WORK.C1 has 1 observations and 4 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.00 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
MLOGIC(TEST2):  %DO loop beginning; index variable ITERATOR; start value is 1; stop value is 4; by value&lt;BR /&gt;
      is 1.&lt;BR /&gt;
MPRINT(TEST2):   data c2;&lt;BR /&gt;
MPRINT(TEST2):   set c1;&lt;BR /&gt;
MPRINT(TEST2):   array letters (4) $25 a b c d;&lt;BR /&gt;
SYMBOLGEN:  Macro variable ITERATOR resolves to 1&lt;BR /&gt;
MPRINT(TEST2):   x=1;&lt;BR /&gt;
MPRINT(TEST2):   var=strip(letters&lt;X&gt;);&lt;BR /&gt;
MPRINT(TEST2):   put +5 "Iteration Number:" x +3 "var=" var;&lt;BR /&gt;
MLOGIC(TEST2):  %IF condition var = 'b' is FALSE&lt;BR /&gt;
MPRINT(TEST2):   put "ERROR-" +4 "The macro condition was false!!!";&lt;BR /&gt;
MPRINT(TEST2):   put;&lt;BR /&gt;
MPRINT(TEST2):   run;&lt;BR /&gt;
&lt;BR /&gt;
     Iteration Number:1    var=a&lt;BR /&gt;
          The macro condition was false!!!&lt;BR /&gt;
&lt;BR /&gt;
NOTE: There were 1 observations read from the data set WORK.C1.&lt;BR /&gt;
NOTE: The data set WORK.C2 has 1 observations and 6 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.01 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
MLOGIC(TEST2):  %DO loop index variable ITERATOR is now 2; loop will iterate again.&lt;BR /&gt;
MPRINT(TEST2):   data c2;&lt;BR /&gt;
MPRINT(TEST2):   set c1;&lt;BR /&gt;
MPRINT(TEST2):   array letters (4) $25 a b c d;&lt;BR /&gt;
SYMBOLGEN:  Macro variable ITERATOR resolves to 2&lt;BR /&gt;
MPRINT(TEST2):   x=2;&lt;BR /&gt;
MPRINT(TEST2):   var=strip(letters&lt;X&gt;);&lt;BR /&gt;
MPRINT(TEST2):   put +5 "Iteration Number:" x +3 "var=" var;&lt;BR /&gt;
MLOGIC(TEST2):  %IF condition var = 'b' is FALSE&lt;BR /&gt;
MPRINT(TEST2):   put "ERROR-" +4 "The macro condition was false!!!";&lt;BR /&gt;
MPRINT(TEST2):   put;&lt;BR /&gt;
MPRINT(TEST2):   run;&lt;BR /&gt;
&lt;BR /&gt;
     Iteration Number:2    var=b&lt;BR /&gt;
          The macro condition was false!!!&lt;BR /&gt;
&lt;BR /&gt;
NOTE: There were 1 observations read from the data set WORK.C1.&lt;BR /&gt;
NOTE: The data set WORK.C2 has 1 observations and 6 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.01 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
MLOGIC(TEST2):  %DO loop index variable ITERATOR is now 3; loop will iterate again.&lt;BR /&gt;
MPRINT(TEST2):   data c2;&lt;BR /&gt;
MPRINT(TEST2):   set c1;&lt;BR /&gt;
MPRINT(TEST2):   array letters (4) $25 a b c d;&lt;BR /&gt;
SYMBOLGEN:  Macro variable ITERATOR resolves to 3&lt;BR /&gt;
MPRINT(TEST2):   x=3;&lt;BR /&gt;
MPRINT(TEST2):   var=strip(letters&lt;X&gt;);&lt;BR /&gt;
MPRINT(TEST2):   put +5 "Iteration Number:" x +3 "var=" var;&lt;BR /&gt;
MLOGIC(TEST2):  %IF condition var = 'b' is FALSE&lt;BR /&gt;
MPRINT(TEST2):   put "ERROR-" +4 "The macro condition was false!!!";&lt;BR /&gt;
MPRINT(TEST2):   put;&lt;BR /&gt;
MPRINT(TEST2):   run;&lt;BR /&gt;
&lt;BR /&gt;
     Iteration Number:3    var=&lt;BR /&gt;
          The macro condition was false!!!&lt;BR /&gt;
&lt;BR /&gt;
NOTE: There were 1 observations read from the data set WORK.C1.&lt;BR /&gt;
NOTE: The data set WORK.C2 has 1 observations and 6 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.07 seconds&lt;BR /&gt;
      cpu time            0.01 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
MLOGIC(TEST2):  %DO loop index variable ITERATOR is now 4; loop will iterate again.&lt;BR /&gt;
MPRINT(TEST2):   data c2;&lt;BR /&gt;
MPRINT(TEST2):   set c1;&lt;BR /&gt;
MPRINT(TEST2):   array letters (4) $25 a b c d;&lt;BR /&gt;
SYMBOLGEN:  Macro variable ITERATOR resolves to 4&lt;BR /&gt;
MPRINT(TEST2):   x=4;&lt;BR /&gt;
MPRINT(TEST2):   var=strip(letters&lt;X&gt;);&lt;BR /&gt;
MPRINT(TEST2):   put +5 "Iteration Number:" x +3 "var=" var;&lt;BR /&gt;
MLOGIC(TEST2):  %IF condition var = 'b' is FALSE&lt;BR /&gt;
MPRINT(TEST2):   put "ERROR-" +4 "The macro condition was false!!!";&lt;BR /&gt;
MPRINT(TEST2):   put;&lt;BR /&gt;
MPRINT(TEST2):   run;&lt;BR /&gt;
&lt;BR /&gt;
     Iteration Number:4    var=d&lt;BR /&gt;
          The macro condition was false!!!&lt;BR /&gt;
&lt;BR /&gt;
NOTE: There were 1 observations read from the data set WORK.C1.&lt;BR /&gt;
NOTE: The data set WORK.C2 has 1 observations and 6 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.01 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
MLOGIC(TEST2):  %DO loop index variable ITERATOR is now 5; loop will not iterate again.&lt;BR /&gt;
MLOGIC(TEST2):  Ending execution.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
As you can see from the log output, the %IF condition fails in all four iterations.. however I had expected it to be true for the second iteration as var=b during the second iteration.  Can anyone shed some light here on what is really going on and where my misunderstanding might be?&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Thanks,&lt;BR /&gt;
Brian&lt;/X&gt;&lt;/X&gt;&lt;/X&gt;&lt;/X&gt;&lt;/X&gt;</description>
      <pubDate>Wed, 09 Feb 2011 20:00:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70854#M15317</guid>
      <dc:creator>BrianDiamante</dc:creator>
      <dc:date>2011-02-09T20:00:02Z</dc:date>
    </item>
    <item>
      <title>Re: %IF-%THEN-%ELSE behavior with %DO (iterative)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70855#M15318</link>
      <description>The SAS program you posted appears to be mixing DATA step logic and MACRO code logic, which is not supported.  You can see from the SAS-generated MLOGIC log messages that any attempt to reference a SAS DATA step variable from a MACRO language statement will not work - the string is treated as character data.&lt;BR /&gt;
&lt;BR /&gt;
When attempting to use the MACRO LANGUAGE, it's best to get a working program defined and tested -- then determine how, if at all, you may see the MACRO language helping with your particular SAS environment / operational processing requirements.&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
      <pubDate>Wed, 09 Feb 2011 20:15:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70855#M15318</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2011-02-09T20:15:26Z</dc:date>
    </item>
    <item>
      <title>Re: %IF-%THEN-%ELSE behavior with %DO (iterative)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70856#M15319</link>
      <description>So the condition for %IF must reference a macro variable only?&lt;BR /&gt;
&lt;BR /&gt;
Brian</description>
      <pubDate>Wed, 09 Feb 2011 20:29:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70856#M15319</guid>
      <dc:creator>BrianDiamante</dc:creator>
      <dc:date>2011-02-09T20:29:47Z</dc:date>
    </item>
    <item>
      <title>Re: %IF-%THEN-%ELSE behavior with %DO (iterative)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70857#M15320</link>
      <description>Normally, yes - do consider that SAS macro language code elements are executed at SAS program compilation time, unlike DATA step language elements which are executed with each DATA step iteration.&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.&lt;BR /&gt;
&lt;BR /&gt;
Suggested Google advanced search argument, this topic / post:&lt;BR /&gt;
&lt;BR /&gt;
macro language site:sas.com&lt;BR /&gt;
&lt;BR /&gt;
macro read sas file sysfunc site:sas.com</description>
      <pubDate>Wed, 09 Feb 2011 21:52:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70857#M15320</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2011-02-09T21:52:30Z</dc:date>
    </item>
    <item>
      <title>Re: %IF-%THEN-%ELSE behavior with %DO (iterative)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70858#M15321</link>
      <description>And, in addition to Scott's suggestions, this paper provides a good introduction to macro processing concepts and Step 9 shows how to use %IF to conditionally execute whole program steps or conditionally insert selected statements into compiled code:&lt;BR /&gt;
&lt;A href="http://www2.sas.com/proceedings/sugi28/056-28.pdf" target="_blank"&gt;http://www2.sas.com/proceedings/sugi28/056-28.pdf&lt;/A&gt; &lt;BR /&gt;
 &lt;BR /&gt;
cynthia</description>
      <pubDate>Wed, 09 Feb 2011 22:23:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70858#M15321</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2011-02-09T22:23:56Z</dc:date>
    </item>
    <item>
      <title>Re: %IF-%THEN-%ELSE behavior with %DO (iterative)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70859#M15322</link>
      <description>I find it helpful separating out the iteration mechanism and the task that is to get done for each iteration.&lt;BR /&gt;&lt;BR /&gt;
&lt;BR /&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;/*&amp;nbsp;input&amp;nbsp;data&amp;nbsp;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;data&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;c1;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a=&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;'a'&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b=&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;'b'&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c=&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;''&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d=&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;'d'&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;run&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;/*&amp;nbsp;macro&amp;nbsp;to&amp;nbsp;iterate&amp;nbsp;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%macro&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;doSomething(iter=);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data&amp;nbsp;c2;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set&amp;nbsp;c1;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array&amp;nbsp;letters(&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;)&amp;nbsp;$&amp;nbsp;a&amp;nbsp;b&amp;nbsp;c&amp;nbsp;d;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;=&amp;nbsp;&amp;amp;iter;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;=&amp;nbsp;strip(letters(x));&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;var=&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;'b'&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;then&amp;nbsp;put&amp;nbsp;x=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;"true.&amp;nbsp;var='b'"&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;put&amp;nbsp;x=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;"false.&amp;nbsp;var^='b'"&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%mend&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;doSomething;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;test&amp;nbsp;running&amp;nbsp;it&amp;nbsp;one&amp;nbsp;at&amp;nbsp;a&amp;nbsp;time&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;doSomething&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(iter=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;doSomething&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(iter=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;run&amp;nbsp;them&amp;nbsp;all&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%macro&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;doAll&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%local&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;i;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%to&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;doSomething&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(iter=&amp;amp;i)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%mend&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;doAll;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;doAll&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;on&amp;nbsp;log&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=1&amp;nbsp;false.&amp;nbsp;var^='b'&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=2&amp;nbsp;true.&amp;nbsp;var='b'&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=3&amp;nbsp;false.&amp;nbsp;var^='b'&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=4&amp;nbsp;false.&amp;nbsp;var^='b'&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Feb 2011 16:06:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-THEN-ELSE-behavior-with-DO-iterative/m-p/70859#M15322</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2011-02-10T16:06:38Z</dc:date>
    </item>
  </channel>
</rss>

