<?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 ERROR: Macro keyword DO appears as text in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112473#M23258</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any help in making the below program work would be great. I get error only when I put %do i = 1 %to 4; ,&amp;amp;&amp;amp;a&amp;amp;i&amp;nbsp; %end; in the sum function. I need to dynamically add values of some macro variables there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro testa;&lt;/P&gt;&lt;P&gt;%let a1 = 2;&lt;BR /&gt;%let a2 = 0;&lt;BR /&gt;%let a3 = 0;&lt;BR /&gt;%let a4 = 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%do v = 1 %to 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do %while(1&amp;lt;2 ) ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %if %sysfunc(sum(0 %do i = 1 %to 4; ,&amp;amp;&amp;amp;a&amp;amp;i&amp;nbsp; %end;))&amp;lt;6 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; data a&amp;amp;v;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a=&amp;amp;v;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %goto leave;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %end; /*End of %if statement*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; data _null_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a=sleep(1,1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end; /*end of while*/&lt;BR /&gt;&amp;nbsp; %leave:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%end; /*end of v*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%mend testa;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Oct 2013 18:42:14 GMT</pubDate>
    <dc:creator>SP_SAS</dc:creator>
    <dc:date>2013-10-14T18:42:14Z</dc:date>
    <item>
      <title>ERROR: Macro keyword DO appears as text</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112473#M23258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any help in making the below program work would be great. I get error only when I put %do i = 1 %to 4; ,&amp;amp;&amp;amp;a&amp;amp;i&amp;nbsp; %end; in the sum function. I need to dynamically add values of some macro variables there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro testa;&lt;/P&gt;&lt;P&gt;%let a1 = 2;&lt;BR /&gt;%let a2 = 0;&lt;BR /&gt;%let a3 = 0;&lt;BR /&gt;%let a4 = 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%do v = 1 %to 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do %while(1&amp;lt;2 ) ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %if %sysfunc(sum(0 %do i = 1 %to 4; ,&amp;amp;&amp;amp;a&amp;amp;i&amp;nbsp; %end;))&amp;lt;6 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; data a&amp;amp;v;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a=&amp;amp;v;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %goto leave;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %end; /*End of %if statement*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; data _null_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a=sleep(1,1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end; /*end of while*/&lt;BR /&gt;&amp;nbsp; %leave:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%end; /*end of v*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%mend testa;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 18:42:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112473#M23258</guid>
      <dc:creator>SP_SAS</dc:creator>
      <dc:date>2013-10-14T18:42:14Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Macro keyword DO appears as text</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112474#M23259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;If you are strictly using integers then you could replace %SYSEVALF() with %EVAL().&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;%let suma = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;%do i=1 %to 4 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;&amp;nbsp; %let suma=%sysevalf(&amp;amp;suma + &amp;amp;&amp;amp;a&amp;amp;i) ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;%end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;%if %sysevalf(&amp;amp;suma &amp;lt; 6) %then %do;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 18:59:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112474#M23259</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2013-10-14T18:59:21Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Macro keyword DO appears as text</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112475#M23260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If your upper limit is hard coded then it is probably easier to just spell it out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;%if %sysfunc(sum(0,&amp;amp;a1,&amp;amp;a2,&amp;amp;a3,&amp;amp;a4))&amp;lt;6 %then %do;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;or&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; font-family: 'courier new', courier;"&gt;%if ((0 + &amp;amp;a1 + &amp;amp;a2 + &amp;amp;a3 + &amp;amp;a4)&amp;lt;6) %then %do;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 19:01:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112475#M23260</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2013-10-14T19:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Macro keyword DO appears as text</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112476#M23261</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot for your response.&lt;/P&gt;&lt;P&gt;My upper limit is hard coded but how many &amp;amp;a1...&amp;amp;an will be there that varies on each run and is determined dynamically.&amp;nbsp; Also if one of the &amp;amp;&amp;amp;a&amp;amp;i has null then using + will give me null that is why I wanted to use sum() function.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 19:09:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112476#M23261</guid>
      <dc:creator>SP_SAS</dc:creator>
      <dc:date>2013-10-14T19:09:41Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Macro keyword DO appears as text</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112477#M23262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Tom, I created a work around using your first comment. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 19:21:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112477#M23262</guid>
      <dc:creator>SP_SAS</dc:creator>
      <dc:date>2013-10-14T19:21:38Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Macro keyword DO appears as text</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112478#M23263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Depending on how you are creating them you might want to make sure that the macro variables have a period instead of empty string in that case.&lt;/P&gt;&lt;P&gt;For example this will be true it you create them from data step variables.&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; a1=1; a2=2 ; a3=.; a4=.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call symputx('a1',a1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call symputx('a2',a2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call symputx('a3',a3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call symputx('a4',a4);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 19:45:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Macro-keyword-DO-appears-as-text/m-p/112478#M23263</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2013-10-14T19:45:37Z</dc:date>
    </item>
  </channel>
</rss>

