Macro Variable-can't be raised to a power!!!

Accepted Solution Solved
Reply
Contributor
Posts: 66
Accepted Solution

Macro Variable-can't be raised to a power!!!

I have created two macro variable (B0 and B3)this way...

............

data _null_;

    set abc;

if variable="Intercept" then

        call SYMPUTX("B0", estimate);

if variable="logX3" then

        call SYMPUTX("B3", estimate);

run;

/* After this I have created a data set aa

as

data aa; m=&B0;n=&B1;run;

Found that both m and n are numeric-I have done this to check the variable types*/

Finally, I am interested to use these variables as

PROC NLIN Data=Prob20;

    Parms gamma0 = 10**&B0    gamma3=&B3;

    MODEL Y=gamma0*X3**(gamma3);

RUN;

But this what it returned

Here is the error message

Thanks in advance for any help.

Raghu


Accepted Solutions
Solution
‎12-03-2012 11:37 AM
Super User
Posts: 19,770

Re: Macro Variable-can't be raised to a power!!!

Yes it can, wrap it in the %sysevalf function to resolve it.

parms gamm0=%sysevalf(10**&B0) gamm3=&b3;

ALL macro variables are character, so testing to see if they're numeric is pointless.

View solution in original post


All Replies
Solution
‎12-03-2012 11:37 AM
Super User
Posts: 19,770

Re: Macro Variable-can't be raised to a power!!!

Yes it can, wrap it in the %sysevalf function to resolve it.

parms gamm0=%sysevalf(10**&B0) gamm3=&b3;

ALL macro variables are character, so testing to see if they're numeric is pointless.

Contributor
Posts: 66

Re: Macro Variable-can't be raised to a power!!!

Thanks Reeza.

Appreciate your skills.

Super Contributor
Posts: 273

Re: Macro Variable-can't be raised to a power!!!

Raghu

%let calc=%sysevalf(10**&b0.);

PROC NLIN Data=Prob20;

    Parms gamma0 = &calc.    gamma3=&B3;

    MODEL Y=gamma0*X3**(gamma3);

RUN;

Try this the return is without error for me except the table which is not existing.

the macro variable calc contain the exact TEXT that will be substituted in your parms instruction

AS Macro variable contains always text

and as it seems that  exponient is not allowed

74   Parms gamma0 =11**1gamma3=&B3;

ERROR 200-322: The symbol is not recognized and will be ignored

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 258 views
  • 0 likes
  • 3 in conversation