<?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: do loop outside data step in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28881#M5388</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use call execute to call your macro.&amp;nbsp; E.g.:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*create some test data;&lt;/P&gt;&lt;P&gt;data data1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class (rename=(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sex=var1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; age=var2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height=var3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; weight=var4));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro m1 (var_use);&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc freq data=data1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; tables var&amp;amp;var_use;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *other commands;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;%mend m1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = cats( '%m1(',i,')' ) ; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call execute ( x ) ; &lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Oct 2011 13:34:34 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2011-10-13T13:34:34Z</dc:date>
    <item>
      <title>do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28877#M5384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to write a do loop outside a data step. For example, assume my data has 15 variables named var1, var2, ...var15. My main question is how to feed "i" into the macro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro m1 (var_use);&lt;/P&gt;&lt;P&gt;proc freq data=data1; &lt;/P&gt;&lt;P&gt;tables var&amp;amp;var_use;&lt;/P&gt;&lt;P&gt;*other commands;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%mend m1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do i = 1 to 15;&lt;/P&gt;&lt;P&gt;%m1 (&amp;amp;i);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Brent Fulton&lt;/P&gt;&lt;P&gt;UC Berkeley&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 11:22:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28877#M5384</guid>
      <dc:creator>BrentFulton</dc:creator>
      <dc:date>2011-10-13T11:22:51Z</dc:date>
    </item>
    <item>
      <title>do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28878#M5385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why don't you just list all VARn variables on the TABLES statement...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES VAR1-VAR15;&lt;/P&gt;&lt;P&gt;or perhaps.&lt;/P&gt;&lt;P&gt;TABLES VAR:;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 11:47:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28878#M5385</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2011-10-13T11:47:09Z</dc:date>
    </item>
    <item>
      <title>do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28879#M5386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I could do that, but my macro is more complex. Is there any way to feed "i" into the macro?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 13:04:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28879#M5386</guid>
      <dc:creator>BrentFulton</dc:creator>
      <dc:date>2011-10-13T13:04:01Z</dc:date>
    </item>
    <item>
      <title>Re: do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28880#M5387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can use %DO to loop in macro language.&lt;/P&gt;&lt;P&gt;Say you want the macro to loop over the variables specified in the input parameter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%macro m1 (varlist);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%local i next ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%let i=1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%do i=1 %to %sysfunc(countw(&amp;amp;varlist));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; %let next=%scan(&amp;amp;varlist,&amp;amp;i);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; proc freq data=data1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tables &amp;amp;next;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; *other commands;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%end;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%mend m1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; height: 8pt;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%m1(age sex race);&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 13:28:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28880#M5387</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-10-13T13:28:10Z</dc:date>
    </item>
    <item>
      <title>Re: do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28881#M5388</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use call execute to call your macro.&amp;nbsp; E.g.:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*create some test data;&lt;/P&gt;&lt;P&gt;data data1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.class (rename=(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sex=var1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; age=var2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height=var3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; weight=var4));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro m1 (var_use);&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc freq data=data1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; tables var&amp;amp;var_use;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *other commands;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;%mend m1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = cats( '%m1(',i,')' ) ; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call execute ( x ) ; &lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 13:34:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28881#M5388</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-10-13T13:34:34Z</dc:date>
    </item>
    <item>
      <title>Re: do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28882#M5389</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thank you Tom this was helpful, because it could be applied to variables in general...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 20:02:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28882#M5389</guid>
      <dc:creator>BrentFulton</dc:creator>
      <dc:date>2011-10-13T20:02:44Z</dc:date>
    </item>
    <item>
      <title>Re: do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28883#M5390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thank you Art, your answer is correct and helpful as well, but Sas only allows one correct answer...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 20:03:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28883#M5390</guid>
      <dc:creator>BrentFulton</dc:creator>
      <dc:date>2011-10-13T20:03:40Z</dc:date>
    </item>
    <item>
      <title>Re: do loop outside data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28884#M5391</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Brent,&amp;nbsp; Tom was clearly first, deserved the correct answer tag, and I have more than enough points as it is.&amp;nbsp; I was simply offering a way to accomplish the task of passing values from one's code to a macro as that question gets asked repeatedly.&amp;nbsp; Regardless, thanks for the recognition.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2011 20:07:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/do-loop-outside-data-step/m-p/28884#M5391</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-10-13T20:07:59Z</dc:date>
    </item>
  </channel>
</rss>

