<?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 Variables in macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127297#M25971</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to write my first macro and I am having problems manipulating the parameters inside macro. This is the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro SecondDerivative_New (parlambda, parepsilon);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;m=%sysevalf(&amp;amp;parlambda+&amp;amp;parepsilon)&lt;/STRONG&gt;; &lt;EM&gt;/* this gives an error ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric operand is required. The&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; condition was:&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda+epsilon&amp;nbsp; */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result1=%FirstDerivative(parlambda=m);&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro FirstDerivative (parlambda=);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10/&amp;amp;parlambda+24*(exp(-1*&amp;amp;parlambda))/(1-exp(-1*&amp;amp;parlambda))-28.52;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;/* call macro */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;data;&lt;/P&gt;&lt;P&gt;lambda=0.799;&lt;/P&gt;&lt;P&gt;epsilon=0.001;&lt;/P&gt;&lt;P&gt;%SecondDerivative_New(lambda,epsilon);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Nov 2012 14:23:32 GMT</pubDate>
    <dc:creator>natmaks</dc:creator>
    <dc:date>2012-11-15T14:23:32Z</dc:date>
    <item>
      <title>Variables in macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127297#M25971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to write my first macro and I am having problems manipulating the parameters inside macro. This is the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro SecondDerivative_New (parlambda, parepsilon);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;m=%sysevalf(&amp;amp;parlambda+&amp;amp;parepsilon)&lt;/STRONG&gt;; &lt;EM&gt;/* this gives an error ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric operand is required. The&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; condition was:&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda+epsilon&amp;nbsp; */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result1=%FirstDerivative(parlambda=m);&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro FirstDerivative (parlambda=);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10/&amp;amp;parlambda+24*(exp(-1*&amp;amp;parlambda))/(1-exp(-1*&amp;amp;parlambda))-28.52;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;/* call macro */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;data;&lt;/P&gt;&lt;P&gt;lambda=0.799;&lt;/P&gt;&lt;P&gt;epsilon=0.001;&lt;/P&gt;&lt;P&gt;%SecondDerivative_New(lambda,epsilon);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2012 14:23:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127297#M25971</guid>
      <dc:creator>natmaks</dc:creator>
      <dc:date>2012-11-15T14:23:32Z</dc:date>
    </item>
    <item>
      <title>Re: Variables in macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127298#M25972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I assume that you have greatly simplified things from a much more complex situation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Based on what you have shown, macros are completely unnecessary here, but maybe they are needed in a more complex situation...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You cannot add data set variables using %SYSEVALF. You can only add macro variables using %SYSEVALF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, &amp;amp;parlambda resolves to lambda (which is not a macro variable, it is a datastep variable). &amp;amp;parepsilon resolves to epsilon (which is not a macro variable, it is a datastep variable).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If your macro is always going to have arguments that resolve to datastep variables, then you simply say&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;m=&amp;amp;parlambda + &amp;amp;parepsilon;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But as I said, using macros and macro variables in this simple situation is completely unnecessary.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2012 14:29:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127298#M25972</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2012-11-15T14:29:58Z</dc:date>
    </item>
    <item>
      <title>Re: Variables in macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127299#M25973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thank you. Yes, it is just a simplified piece. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Nov 2012 14:41:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Variables-in-macro/m-p/127299#M25973</guid>
      <dc:creator>natmaks</dc:creator>
      <dc:date>2012-11-15T14:41:01Z</dc:date>
    </item>
  </channel>
</rss>

