Can we replace macro variable.

Reply
Contributor
Posts: 34

Can we replace macro variable.

/*************** macro varaiable *********************/

% let refvar = AEENDT ;

/********************* creating new variable =AEENDY  *******************/

data works._RefDate_;

set  _RefDate_;

RFSTDTC =input ( RFSTDTC  ,YYMMDD10.);

if  &refvar.   le RFSTDTC then  AEENDY  =  &refvar. - RFSTDTC + 1;

if  &refvar.  ge RFSTDTC then  AEENDY  =  &refvar. - RFSTDTC ;

run;

The macro varaible  AEENDT  has suffix "DT" DT should  be place by "DY"...  and  create the new variable.. "  In the above code i have hard code the new variable name "AEENDY ".""

Super User
Posts: 5,260

Re: Can we replace macro variable.

Not sure what kind of dynamics you want, but can't you just use &refvar instead of the hard code variable name?

Data never sleeps
Super User
Super User
Posts: 7,413

Re: Can we replace macro variable.

Hi,

Why do you want to put the variable name in a macro variable at all, I don't see any benefit?  All your doing is complicating the code.   If you really really have to use macro then put the base part of the variable in the macro and then append the additional part:

% let refvar = AEEN ;

/********************* creating new variable =AEENDY  *******************/

data works._RefDate_;

     set  _RefDate_;

     RFSTDTC =input ( RFSTDTC  ,YYMMDD10.);

     if  &refvar.DT   le RFSTDTC then  &refvar.DY  =  &refvar.DT - RFSTDTC + 1;

     if  &refvar.DT  ge RFSTDTC then  &refvar.DY  =  &refvar.DT - RFSTDTC ;

run;

Again though, this oesn't add any value, so why bother?

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