<?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: Need a code check on Parameter Validations in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51969#M14286</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use sas 9.3.&amp;nbsp;&amp;nbsp; Your code works perfectly now.&amp;nbsp; Thank you! - Linlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let decimal= 0 1 2 3 4;&lt;/P&gt;&lt;P&gt;%let orders=INTERNAL FREQ;&lt;/P&gt;&lt;P&gt;%let numerror=0;&lt;/P&gt;&lt;P&gt;%macro salarystats(decimals1=5,order1=PANDA) /minoperator;&lt;/P&gt;&lt;P&gt;%if not &amp;amp;decimals1 in &amp;amp;decimal %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%if not (&amp;amp;order1 in &amp;amp;orders) %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%if &amp;amp;numerror lt 1 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; options nolabel;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; title '????';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; proc means data=sashelp.class maxdec=&amp;amp;decimals order=&amp;amp;order;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var age;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class sex;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;title;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%else %put What are you trying to use?;&lt;/P&gt;&lt;P&gt;%mend salarystats;&lt;/P&gt;&lt;P&gt;%salarystats;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 01 Apr 2012 04:15:48 GMT</pubDate>
    <dc:creator>Linlin</dc:creator>
    <dc:date>2012-04-01T04:15:48Z</dc:date>
    <item>
      <title>Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51964#M14281</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need someone to check my code and let me know where I am going wrong with it:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options mlogic;&lt;/P&gt;&lt;P&gt;%let decimal= 0 1 2 3 4;&lt;/P&gt;&lt;P&gt;%let orders=INTERNAL FREQ;&lt;/P&gt;&lt;P&gt;%let numerror=0;&lt;/P&gt;&lt;P&gt;%macro salarystats(decimals1=5,order1=PANDA);&lt;/P&gt;&lt;P&gt;%if not &amp;amp;decimals1 in &amp;amp;decimal %then %eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%else %if not &amp;amp;order1 in &amp;amp;orders %then %eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%else %if &amp;amp;numerror lt 1 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; options nolabel;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; title 'Salary Stats';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; proc means data=orion.staff maxdec=&amp;amp;decimals order=&amp;amp;order;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where job_title contains 'Sales';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var salary;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class job_title;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;title;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%else %put What are you trying to use?;&lt;/P&gt;&lt;P&gt;%mend salarystats;&lt;/P&gt;&lt;P&gt;%salarystats()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I keep getting the following error in my log:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Beginning execution.&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Parameter DECIMALS1 has value 5&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Parameter ORDER1 has value PANDA&lt;/P&gt;&lt;P&gt;ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; operand is required. The condition was: not &amp;amp;decimals1 in &amp;amp;decimal&lt;/P&gt;&lt;P&gt;ERROR: The macro SALARYSTATS will stop executing.&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Ending execution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could someone let me know where I am going wrong with my code?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Alisa&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 01:19:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51964#M14281</guid>
      <dc:creator>InfoAlisaA</dc:creator>
      <dc:date>2012-04-01T01:19:34Z</dc:date>
    </item>
    <item>
      <title>Re: Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51965#M14282</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need to turn on the IN operator if you want to use it.&amp;nbsp; You can add /minoperator to the end of your %MACRO statement.&lt;/P&gt;&lt;P&gt;You also need to do something with the result of the %EVAL() function calls. &lt;/P&gt;&lt;P&gt;Did you mean to use that to increment the error count? if so then you need to use a %LET statement.&lt;/P&gt;&lt;P&gt;Also get rid of the %ELSE's so that both parameters are checked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let decimal= 0 1 2 3 4;&lt;/P&gt;&lt;P&gt;%let orders=INTERNAL FREQ;&lt;/P&gt;&lt;P&gt;%let numerror=0;&lt;/P&gt;&lt;P&gt;%macro salarystats(decimals1=5,order1=PANDA) /minoperator;&lt;/P&gt;&lt;P&gt;%if not &amp;amp;decimals1 in &amp;amp;decimal %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%if not &amp;amp;order1 in &amp;amp;orders %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%if &amp;amp;numerror lt 1 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; options nolabel;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; title 'Salary Stats';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; proc means data=orion.staff maxdec=&amp;amp;decimals order=&amp;amp;order;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where job_title contains 'Sales';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var salary;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class job_title;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;title;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%else %put What are you trying to use?;&lt;/P&gt;&lt;P&gt;%mend salarystats;&lt;/P&gt;&lt;P&gt;%salarystats;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 03:14:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51965#M14282</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-04-01T03:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51966#M14283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tom,&lt;/P&gt;&lt;P&gt;I ran your code. below is the log file. I replaced the OP's dataset with sashelp.class.&amp;nbsp;&amp;nbsp; Thanks - Linlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1073&amp;nbsp; %let decimal= 0 1 2 3 4;&lt;/P&gt;&lt;P&gt;1074&amp;nbsp; %let orders=INTERNAL FREQ;&lt;/P&gt;&lt;P&gt;1075&amp;nbsp; %let numerror=0;&lt;/P&gt;&lt;P&gt;1076&amp;nbsp; %macro salarystats(decimals1=5,order1=PANDA) /minoperator;&lt;/P&gt;&lt;P&gt;1077&amp;nbsp; %if not &amp;amp;decimals1 in &amp;amp;decimal %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;1078&amp;nbsp; %if not &amp;amp;order1 in &amp;amp;orders %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;1079&amp;nbsp; %if &amp;amp;numerror lt 1 %then %do;&lt;/P&gt;&lt;P&gt;1080&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options nolabel;&lt;/P&gt;&lt;P&gt;1081&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; title 'Salary Stats';&lt;/P&gt;&lt;P&gt;1082&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc means data=sashelp.class maxdec=&amp;amp;decimals order=&amp;amp;order;&lt;/P&gt;&lt;P&gt;1083&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var age;&lt;/P&gt;&lt;P&gt;1084&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class sex;&lt;/P&gt;&lt;P&gt;1085&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;1086&amp;nbsp; title;&lt;/P&gt;&lt;P&gt;1087&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;1088&amp;nbsp; %else %put What are you trying to use?;&lt;/P&gt;&lt;P&gt;1089&amp;nbsp; %mend salarystats;&lt;/P&gt;&lt;P&gt;1090&amp;nbsp; %salarystats;&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Beginning execution.&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Parameter DECIMALS1 has value 5&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Parameter ORDER1 has value PANDA&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; %IF condition not &amp;amp;decimals1 in &amp;amp;decimal is TRUE&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; %LET (variable name is NUMERROR)&lt;/P&gt;&lt;P&gt;ERROR: A character operand was found in the %EVAL function or %IF condition where&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a numeric operand is required. The condition was: not &amp;amp;order1 in &amp;amp;orders&lt;/P&gt;&lt;P&gt;ERROR: The macro SALARYSTATS will stop executing.&lt;/P&gt;&lt;P&gt;MLOGIC(SALARYSTATS):&amp;nbsp; Ending execution.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 03:43:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51966#M14283</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-04-01T03:43:01Z</dc:date>
    </item>
    <item>
      <title>Re: Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51967#M14284</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What version of SAS?&amp;nbsp; I ran using 9.22.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;%put sysver=&amp;amp;sysver sysvlong=&amp;amp;sysvlong;&lt;/P&gt;&lt;P&gt;sysver=9.2 sysvlong=9.02.02M3P041310&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 03:49:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51967#M14284</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-04-01T03:49:52Z</dc:date>
    </item>
    <item>
      <title>Re: Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51968#M14285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It was the removal of the extra %ELSE that made it bomb, before I never really tested the other %IF condition because the first one failed.&lt;/P&gt;&lt;P&gt;Enclosing the IN clause in () makes it go away.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if not (&amp;amp;order1 in &amp;amp;orders) %then ...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 04:00:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51968#M14285</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-04-01T04:00:30Z</dc:date>
    </item>
    <item>
      <title>Re: Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51969#M14286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use sas 9.3.&amp;nbsp;&amp;nbsp; Your code works perfectly now.&amp;nbsp; Thank you! - Linlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let decimal= 0 1 2 3 4;&lt;/P&gt;&lt;P&gt;%let orders=INTERNAL FREQ;&lt;/P&gt;&lt;P&gt;%let numerror=0;&lt;/P&gt;&lt;P&gt;%macro salarystats(decimals1=5,order1=PANDA) /minoperator;&lt;/P&gt;&lt;P&gt;%if not &amp;amp;decimals1 in &amp;amp;decimal %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%if not (&amp;amp;order1 in &amp;amp;orders) %then %let numerror=%eval(&amp;amp;numerror+1);&lt;/P&gt;&lt;P&gt;%if &amp;amp;numerror lt 1 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; options nolabel;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; title '????';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; proc means data=sashelp.class maxdec=&amp;amp;decimals order=&amp;amp;order;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var age;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class sex;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;title;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%else %put What are you trying to use?;&lt;/P&gt;&lt;P&gt;%mend salarystats;&lt;/P&gt;&lt;P&gt;%salarystats;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 04:15:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51969#M14286</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-04-01T04:15:48Z</dc:date>
    </item>
    <item>
      <title>Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51970#M14287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Tom! This worked perfectly!! :smileygrin:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 16:14:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51970#M14287</guid>
      <dc:creator>InfoAlisaA</dc:creator>
      <dc:date>2012-04-01T16:14:19Z</dc:date>
    </item>
    <item>
      <title>Re: Need a code check on Parameter Validations</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51971#M14288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alisa,&lt;/P&gt;&lt;P&gt;It was Tom's code. Please check one of Tom's posts as correct answer.&amp;nbsp; Thanks - Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Apr 2012 16:30:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Need-a-code-check-on-Parameter-Validations/m-p/51971#M14288</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-04-01T16:30:38Z</dc:date>
    </item>
  </channel>
</rss>

