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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.