<?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 MACRO VARIABLES - VARIABLE LIST in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52199#M11004</link>
    <description>I am trying to build a macro to handle a sequence of PROC's, but the BY variables and the VAR variables may change.  Can you pass lists of variables to a macro to use in the BY and VAR statements?&lt;BR /&gt;
&lt;BR /&gt;
i.e. something like:&lt;BR /&gt;
&lt;BR /&gt;
%mymacro(mydataset, ('var1', 'var2'), ('var3', 'var4'));&lt;BR /&gt;
&lt;BR /&gt;
%macro mymacro(dataset=,list1=, list2=);&lt;BR /&gt;
proc means sum data=&amp;amp;dataset;&lt;BR /&gt;
by &amp;amp;list1;&lt;BR /&gt;
var &amp;amp;list2;&lt;BR /&gt;
run;&lt;BR /&gt;
%mend mymacro;</description>
    <pubDate>Wed, 08 Jul 2009 18:04:00 GMT</pubDate>
    <dc:creator>cjohnson</dc:creator>
    <dc:date>2009-07-08T18:04:00Z</dc:date>
    <item>
      <title>MACRO VARIABLES - VARIABLE LIST</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52199#M11004</link>
      <description>I am trying to build a macro to handle a sequence of PROC's, but the BY variables and the VAR variables may change.  Can you pass lists of variables to a macro to use in the BY and VAR statements?&lt;BR /&gt;
&lt;BR /&gt;
i.e. something like:&lt;BR /&gt;
&lt;BR /&gt;
%mymacro(mydataset, ('var1', 'var2'), ('var3', 'var4'));&lt;BR /&gt;
&lt;BR /&gt;
%macro mymacro(dataset=,list1=, list2=);&lt;BR /&gt;
proc means sum data=&amp;amp;dataset;&lt;BR /&gt;
by &amp;amp;list1;&lt;BR /&gt;
var &amp;amp;list2;&lt;BR /&gt;
run;&lt;BR /&gt;
%mend mymacro;</description>
      <pubDate>Wed, 08 Jul 2009 18:04:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52199#M11004</guid>
      <dc:creator>cjohnson</dc:creator>
      <dc:date>2009-07-08T18:04:00Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO VARIABLES - VARIABLE LIST</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52200#M11005</link>
      <description>SAS macro language programming supports both positional and keyword-driven macro variable specification when invoking a SAS macro.  Your example shared shows incompatible references, the macro invocation showing positional and the %MACRO statement definition showing keyword.  These two references must be consistent.  &lt;BR /&gt;
&lt;BR /&gt;
Suggest using keyword-drive for self-documentation.  Also, suggest reviewing SAS support  &lt;A href="http://support.sas.com/" target="_blank"&gt;http://support.sas.com/&lt;/A&gt;  website references, both SAS-hosted product documentation on Macro Language, and supplemental technical / conference papers.  Either use the website SEARCH facility or consider the Google advanced search argument below:&lt;BR /&gt;
&lt;BR /&gt;
sas macro programming site:sas.com&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
      <pubDate>Wed, 08 Jul 2009 18:21:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52200#M11005</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2009-07-08T18:21:11Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO VARIABLES - VARIABLE LIST</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52201#M11006</link>
      <description>Sure, but you've got too many quotes and parentheses. &lt;BR /&gt;
&lt;BR /&gt;
One way:&lt;BR /&gt;
&lt;BR /&gt;
%macro mymacro(dataset,list1, list2);&lt;BR /&gt;
proc means sum data=&amp;amp;dataset;&lt;BR /&gt;
by &amp;amp;list1;&lt;BR /&gt;
var &amp;amp;list2;&lt;BR /&gt;
run;&lt;BR /&gt;
%mend mymacro; &lt;BR /&gt;
&lt;BR /&gt;
%mymacro(mydataset, var1 var2, var3 var4);&lt;BR /&gt;
&lt;BR /&gt;
The Book-by-User "Professional SAS Programming Shortcuts" has a lot more on how to  implement macros for various situations and is a bit easier to learn from than the Macro Reference Manual.</description>
      <pubDate>Wed, 08 Jul 2009 18:21:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52201#M11006</guid>
      <dc:creator>Doc_Duke</dc:creator>
      <dc:date>2009-07-08T18:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO VARIABLES - VARIABLE LIST</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52202#M11007</link>
      <description>And this is also a succinct overview:&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; (see step 6 and step 7 for examples of positional vs keyword parameters)&lt;BR /&gt;
&lt;BR /&gt;
cynthia&lt;BR /&gt;
&lt;BR /&gt;
(FWIW, whenever I coded production macros, the standard was -always- to use keyword and not positional parameters. It's easier to maintain, easier to invoke and less confusing for a non-macro programmer to figure out.)</description>
      <pubDate>Wed, 08 Jul 2009 19:07:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-VARIABLES-VARIABLE-LIST/m-p/52202#M11007</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2009-07-08T19:07:30Z</dc:date>
    </item>
  </channel>
</rss>

