I do see couple of examples that macro variables don't have ampersand in front of them when they are referenced.
Can you tell me under what scenario, this rule applies?
I would be interested in seeing where you have found that. Any macro variable I've run across is always preceded with the ampersant. Is it possibly you are confusing a datastep automatic variable such as _n_ or _infile_ with a macro variable?
There are just a handful of cases. Here are the ones I can think of off the top of my head.
In a DATA step, CALL SYMPUT and SYMGET both expect to see the name of a macro variable. So the ampersand should be omitted (although since it's in a DATA step, quotes would distinguish between a DATA step variable vs. a text string). For example, both of these create a macro variable &SALES:
varname='sales';
call symput('sales', 'Friday');
call symput(varname, 'Friday');
Other than that, the only case I can think of is the %superq function. It also expects the name of a macro variable. For example:
data _null_;
call symput('measure', 'S&P 500 Index');
run;
%let measure = superq(measure);
title "&measure";
This would quote the &P, so that resolving &measure does not trigger a search for the macro variable &P.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.