<?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: can we call a macro in a do loop? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165705#M31957</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It depends on what the macro does. Since your example doesn't change &amp;amp;month, why would you call it 4 times? Also your Do statement needs a ; at the end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to use a value in a dataset with a macro call you should look up CALL EXECUTE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to use a macro loop you will need to call it within an macro as the %do %end constructs will not work in open code (i.e. non-macro code ). Something like:&lt;/P&gt;&lt;P&gt;%macro dummy;&lt;/P&gt;&lt;P&gt;%do month = 1 %to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %monthly(&amp;amp;month);&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;%dummy;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remember that the macro language basically just generates text that is interpretted as SAS code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 06 Dec 2013 15:49:36 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2013-12-06T15:49:36Z</dc:date>
    <item>
      <title>can we call a macro in a do loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165704#M31956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;please help me with this issue and suggest me possible alternatives&lt;/P&gt;&lt;P&gt;can we call a macro in a do loop?&lt;/P&gt;&lt;P&gt; fo ex-&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;do i=1 to 4&lt;/P&gt;&lt;P&gt;%monthly(&amp;amp;month.);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 11:45:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165704#M31956</guid>
      <dc:creator>naziya</dc:creator>
      <dc:date>2013-12-06T11:45:14Z</dc:date>
    </item>
    <item>
      <title>Re: can we call a macro in a do loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165705#M31957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It depends on what the macro does. Since your example doesn't change &amp;amp;month, why would you call it 4 times? Also your Do statement needs a ; at the end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to use a value in a dataset with a macro call you should look up CALL EXECUTE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to use a macro loop you will need to call it within an macro as the %do %end constructs will not work in open code (i.e. non-macro code ). Something like:&lt;/P&gt;&lt;P&gt;%macro dummy;&lt;/P&gt;&lt;P&gt;%do month = 1 %to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %monthly(&amp;amp;month);&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;%dummy;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remember that the macro language basically just generates text that is interpretted as SAS code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 15:49:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165705#M31957</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2013-12-06T15:49:36Z</dc:date>
    </item>
    <item>
      <title>Re: can we call a macro in a do loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165706#M31958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes of course you can place a macro in a do-loop inside a data step, if you really want to. First make sure you pay attention to &lt;A __default_attr="260198" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://communities.sas.com/"&gt;&lt;/A&gt;'s advice regarding missing semi-colon&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the macro contains only data step code (and not a new DATA step or a call to a PROC) then it should work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This very trivial macro ought to do something, assuming the argument month is integer, you won't get an error -- not saying this is a good thing to put in your macro, just that it is an example of a macro that works inside of a do-loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro monthly(month);&lt;/P&gt;&lt;P&gt;calc=&amp;amp;month+i;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course, as stated by &lt;A __default_attr="260198" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://communities.sas.com/"&gt;&lt;/A&gt;, you don't really need to do this with a macro (and in fact, you don't even need CALL EXECUTE for this trivial case), and so you really ought to be 100% sure you need a macro inside the do loop; many times data step code can do the same thing.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 18:09:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165706#M31958</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2013-12-06T18:09:20Z</dc:date>
    </item>
    <item>
      <title>Re: can we call a macro in a do loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165707#M31959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hey thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Dec 2013 06:50:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165707#M31959</guid>
      <dc:creator>naziya</dc:creator>
      <dc:date>2013-12-09T06:50:06Z</dc:date>
    </item>
    <item>
      <title>Re: can we call a macro in a do loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165708#M31960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanku&lt;/P&gt;&lt;P&gt;going forward i will keep in view syntactical errors do not happen.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Dec 2013 06:51:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/can-we-call-a-macro-in-a-do-loop/m-p/165708#M31960</guid>
      <dc:creator>naziya</dc:creator>
      <dc:date>2013-12-09T06:51:09Z</dc:date>
    </item>
  </channel>
</rss>

