Can anyone give an example of %eval that returns a boolean value, true/false?
In sas help, it says "If at least one operand cannot be interpreted as numeric, the expression is treated as logical."
But it doesn't give an example, I tried following:
%eval('0'+1);
it returned an error
I can't think of one example.
Use %SYSEVALF if you want to enforce the format of the returned value.
%sysevalf(4+5,boolean) will return 1 instead of 9.
You can also simulate the result, using %EVAL. This expression also returns a 1:
%eval ( (4+5) ne 0)
However, %SYSEVALF will also return 0 for calculated missing values. %EVAL returns an error.
Also note that %EVAL is still limited to integer arithmetic. These expressions return different results:
%sysevalf(4/5, boolean)
%eval( (4/5) ne 0)
Hope this helps, rather than confuses the issue!
Here is an example. hth
%put %eval( 1.0 eq 1);
%*-- returns 0 for false -- *;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.