Hi,
Can I use 'in' operator in macros? It seems the following code doesn't work. Thanks.
%macro test(a);
%if %upcase(&a.) in (A, B, C) %then %let name = Mike;
%mend test;
What SAS/EG version you have? It works for me on both SAS 9.3/9.4 with EG 5.1
On my test, it works even when parenthesis is present:
%macro test(a) /minoperator;
%if %upcase(&a) in (A B C) %then %put Hello;
%mend test;
%test(a)
Well, I tried this in PC SAS and it worked.
%macro test(a) /minoperator;
%if %upcase(&a) in A B C %then %put Hello;
%mend test;
%test(a);
However, it doesn't work in SAS EG. Any other suggestion? Do I have to write them by ' xxx or xxx or xxx'? Thanks.
What SAS/EG version you have? It works for me on both SAS 9.3/9.4 with EG 5.1
On my test, it works even when parenthesis is present:
%macro test(a) /minoperator;
%if %upcase(&a) in (A B C) %then %put Hello;
%mend test;
%test(a)
It worked for me now. I probably did something wrong with the minoperator option. After I restart the SAS EG, it worked! Thanks.
Here's a reference article I found handy for working with the in operator in macros. It entails listing the 'in' delimiter.
Hope this helps!
http://support.sas.com/kb/35/591.html
Starting SAS 9.2, there is an IN operator for the macro language. The IN operator can now be used on the %IF statement when the MINOPERATOR option is set on the %MACRO statement or as a SAS system option.
options minoperator mlogic;
%macro test(value)/mindelimiter=',';
%if &value in 1,2,3,4,5,6 %then
%put Value found within list.;
%else %put Value not in list.;
%mend;
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.