Data step: value with ampersand inside

Reply
Contributor
Posts: 58

Data step: value with ampersand inside

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

Contributor
Posts: 46

Re: Data step: value with ampersand inside

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.

Super User
Posts: 5,518

Re: Data step: value with ampersand inside

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.

Ask a Question
Discussion stats
  • 2 replies
  • 200 views
  • 0 likes
  • 3 in conversation