<?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 numeric condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107459#M258648</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jag is right insofar as you should try to get an unquoted (ie. numeric) value for &amp;amp;nbObs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a solution however even when &amp;amp;nbObs has the value (quotes being part of the value)&amp;nbsp; "23"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if&amp;nbsp; %eval ( %sysfunc(dequote(&amp;amp;nbObs)) &amp;gt; 6 ) %then %do ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This first removes the quotes from &amp;amp;nbObs and then does the %eval part.&lt;/P&gt;&lt;P&gt;But as mentioned initially (giving credit to Jag): try to get a pure numeric value for &amp;amp;nbObs first.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Dec 2012 11:01:50 GMT</pubDate>
    <dc:creator>Robert_Bardos</dc:creator>
    <dc:date>2012-12-24T11:01:50Z</dc:date>
    <item>
      <title>Resolving numeric condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107457#M258646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Certainly a trivial question: how do I put an %if condition with numeric criteria? For example, I want the code to process if the number of obs in a dataset is greater than 6&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;nbObs&amp;gt;6 %then %do;&lt;/P&gt;&lt;P&gt;&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; &lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem is that &amp;amp;nbObs resolve to "23" which resolve incorrectly the condition. Tried with %eval without success&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2012 09:40:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107457#M258646</guid>
      <dc:creator>aviben</dc:creator>
      <dc:date>2012-12-24T09:40:08Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving numeric condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107458#M258647</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;did you try to create the macro variable using proc sql, this will create the numeric macro variable with the number of observations. please try the below code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select count(*) into : obs from dataset_name;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put &amp;amp;obs;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jag&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2012 10:44:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107458#M258647</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2012-12-24T10:44:39Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving numeric condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107459#M258648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jag is right insofar as you should try to get an unquoted (ie. numeric) value for &amp;amp;nbObs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a solution however even when &amp;amp;nbObs has the value (quotes being part of the value)&amp;nbsp; "23"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if&amp;nbsp; %eval ( %sysfunc(dequote(&amp;amp;nbObs)) &amp;gt; 6 ) %then %do ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This first removes the quotes from &amp;amp;nbObs and then does the %eval part.&lt;/P&gt;&lt;P&gt;But as mentioned initially (giving credit to Jag): try to get a pure numeric value for &amp;amp;nbObs first.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2012 11:01:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107459#M258648</guid>
      <dc:creator>Robert_Bardos</dc:creator>
      <dc:date>2012-12-24T11:01:50Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving numeric condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107460#M258649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Robert, yes indeed your solution is also very useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jag&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2012 14:33:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107460#M258649</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2012-12-24T14:33:08Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving numeric condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107461#M258650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Although I'm not able to test it at the moment, you could probably get rid of %eval from the earlier suggestion:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if %sysfunc(dequote(&amp;amp;nobs)) &amp;gt; 6 %then %do;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One thing you should NOT do is add double quotes to match:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;nobs &amp;gt; "6" %then %do;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It will run, but will make the wrong comparison.&amp;nbsp; Because of the double quotes, it will make a character comparison.&amp;nbsp; Since 2 &amp;lt; 6, the comparison will be false.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Better yet, listen to the suggestions to get rid of the double quotes from &amp;amp;nobs and you won't have to worry about complicated comparisons.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2012 14:33:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107461#M258650</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-12-24T14:33:56Z</dc:date>
    </item>
    <item>
      <title>Re: Resolving numeric condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107462#M258651</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Agree with Astounding. %if will automatically conduct&amp;nbsp; %eval operation at the background.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Dec 2012 16:52:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resolving-numeric-condition/m-p/107462#M258651</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-12-24T16:52:05Z</dc:date>
    </item>
  </channel>
</rss>

