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.
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.