Hi,
I have the followng code:
%let mycompany=M&G CORPORATION;
data Portfolio_holding_lt_30;
length MYCOMPANY $ 100
;
MYCOMPANY = "&mycompany.";
run;
%put &syserr;
I get a warning and the syserr is equals to 4. I don't like this because I check if syserr > 0 then If yes I stop the execution.
To there is a workaround to the instruction
MYCOMPANY = "&mycompany.";
in order to avoid to get syserr = 0
Many thanks.
regards
Hi Garag,
Yes, this would lead to apparent symbolc warning since SAS consider G (ie.,M&G Company) as macro variable in the session.
So in order to avoid this, You should use Macro Masking function such as %str(), %nrstr(),%quote()........etc.
Try the below code.
%let mycompany=%nrstr(M&G CORPORATION);
data Portfolio_holding_lt_30;
length MYCOMPANY $ 100 ;
MYCOMPANY = "&mycompany.";
run;
Thanks.
There's another way that might be appropriate:
%let mycompany = 'M&G CORPORATION';
Then later:
MYCOMPANY = &MYCOMPANY;
As long as all uses of the macro variable require quotes around the company name, this would work.
Good luck.
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.