<?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: Resolving macro variable in a condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523135#M142114</link>
    <description>&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks a lot for all your help .&amp;nbsp; This really helped me&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you so much&lt;/P&gt;</description>
    <pubDate>Fri, 21 Dec 2018 18:31:21 GMT</pubDate>
    <dc:creator>chennupriya</dc:creator>
    <dc:date>2018-12-21T18:31:21Z</dc:date>
    <item>
      <title>Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523091#M142084</link>
      <description>&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;I have a dataset which looks like below . Here k_cnt = 3 and here I am unable to resolve this &lt;FONT face="Courier New"&gt;&amp;amp;&amp;amp;c_&amp;amp;&amp;amp;k_cnt&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;i.&lt;STRONG&gt;._&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;pls . So is that something error in the way I have written ?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="316"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;c_apple_cols&lt;/TD&gt;
&lt;TD width="85"&gt;c_orange_cols&lt;/TD&gt;
&lt;TD width="100"&gt;c_berry_cols&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;34&lt;/TD&gt;
&lt;TD&gt;45&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &lt;STRONG&gt;&lt;I&gt;test2&lt;/I&gt;&lt;/STRONG&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;set test;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; call symputx(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'k_lst'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||left(_n_),_NAME_);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; if last then call symput(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'k_cnt'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,_n_);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sql;&lt;/P&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;k_cnt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; c_&amp;amp;&amp;amp;k_lst&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;i.&lt;STRONG&gt;._&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;cols, &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;total_items&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;into&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;k_cnt.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;:c_&amp;amp;&amp;amp;k_lst&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;i.&lt;STRONG&gt;._&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;pls,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;:total_pls&lt;/P&gt;
&lt;P&gt;from testg;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;k_cnt&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%If&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;&amp;amp;c_&amp;amp;&amp;amp;k_lst&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;i.&lt;STRONG&gt;._&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;pls &amp;gt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; u = 'Amazing';&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; u = 'Super';&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;I&gt;test2&lt;/I&gt;&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Can anyone please help&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Dec 2018 16:30:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523091#M142084</guid>
      <dc:creator>chennupriya</dc:creator>
      <dc:date>2018-12-21T16:30:35Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523099#M142090</link>
      <description>&lt;P&gt;You haven't defined any macro variables that would map 1 to APPLE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why not just skip the macro and use a data step to generate the macro variables?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
  set have ;
  array x _numeric_;
  do i=1 to dim(x);
    call symputx(vname(x(i)),x(i));
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Results:&lt;/P&gt;
&lt;PRE&gt;80   %Put &amp;amp;=c_apple_cols &amp;amp;=c_orange_cols &amp;amp;=c_berry_cols &amp;amp;=total_items ;
C_APPLE_COLS=34 C_ORANGE_COLS=45 C_BERRY_COLS=0 TOTAL_ITEMS=79&lt;/PRE&gt;</description>
      <pubDate>Fri, 21 Dec 2018 16:15:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523099#M142090</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-12-21T16:15:53Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523105#M142092</link>
      <description>&lt;P&gt;Hi Tom,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have replied the code I have used to create the macro variables&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Fri, 21 Dec 2018 16:32:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523105#M142092</guid>
      <dc:creator>chennupriya</dc:creator>
      <dc:date>2018-12-21T16:32:17Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523106#M142093</link>
      <description>&lt;P&gt;This expression is incorrect:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;amp;&amp;amp;c_&amp;amp;&amp;amp;k_cnt&amp;amp;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3" color="#008080"&gt;i.&lt;STRONG&gt;._&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;pls&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Because you need double-resolution inside the string (&amp;amp;&amp;amp;k_cnt&amp;amp;i..), you need triple resolution for the entire string.&amp;nbsp; So you will need four ampersands:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;amp;&amp;amp;&amp;amp;&amp;amp;c_&amp;amp;&amp;amp;k_cnt&amp;amp;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3" color="#008080"&gt;i.&lt;STRONG&gt;._&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;pls&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Dec 2018 16:36:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523106#M142093</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-12-21T16:36:16Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523129#M142110</link>
      <description>&lt;P&gt;There are usually much better ways to generate code than using macro "arrays".&lt;BR /&gt;I think your macro variables are getting generated but perhaps you don't know how to reference them?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let i=1 ;
%let k_lst1 = Apple ;
%put c_&amp;amp;&amp;amp;k_lst&amp;amp;i.._cols ;

%let c_Apple_cols = 65 ;

%put &amp;amp;&amp;amp;&amp;amp;&amp;amp;c_&amp;amp;&amp;amp;k_lst&amp;amp;i.._cols ;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;212  options symbolgen;
213  %put &amp;amp;&amp;amp;&amp;amp;&amp;amp;c_&amp;amp;&amp;amp;k_lst&amp;amp;i.._cols ;
SYMBOLGEN:  &amp;amp;&amp;amp; resolves to &amp;amp;.
SYMBOLGEN:  &amp;amp;&amp;amp; resolves to &amp;amp;.
SYMBOLGEN:  &amp;amp;&amp;amp; resolves to &amp;amp;.
SYMBOLGEN:  Macro variable I resolves to 1
SYMBOLGEN:  &amp;amp;&amp;amp; resolves to &amp;amp;.
SYMBOLGEN:  Macro variable K_LST1 resolves to Apple
SYMBOLGEN:  Macro variable C_APPLE_COLS resolves to 65
65
214  options nosymbolgen;&lt;/PRE&gt;
&lt;P&gt;I find that it is usually a lot easier to build up the result in pieces instead of generating such a complex expression to resolve a macro variable.&lt;/P&gt;
&lt;PRE&gt;215  %let name = c_&amp;amp;&amp;amp;k_lst&amp;amp;i ;
216  %let name = &amp;amp;name._cols ;
217  %let value=&amp;amp;&amp;amp;&amp;amp;name ;
218  %put &amp;amp;=name &amp;amp;=value;
NAME=c_Apple_cols VALUE=65&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Dec 2018 18:02:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523129#M142110</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-12-21T18:02:12Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523133#M142113</link>
      <description>&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you so much for all your help .thanks a lot . This one worked&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Fri, 21 Dec 2018 18:28:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523133#M142113</guid>
      <dc:creator>chennupriya</dc:creator>
      <dc:date>2018-12-21T18:28:38Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving macro variable in a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523135#M142114</link>
      <description>&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks a lot for all your help .&amp;nbsp; This really helped me&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you so much&lt;/P&gt;</description>
      <pubDate>Fri, 21 Dec 2018 18:31:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-macro-variable-in-a-condition/m-p/523135#M142114</guid>
      <dc:creator>chennupriya</dc:creator>
      <dc:date>2018-12-21T18:31:21Z</dc:date>
    </item>
  </channel>
</rss>

