SAS said there is syntax error for &j:
%MACRO calnum;
%DO j=1 %TO 2;
%DO i=1 %TO 10;
PROC UNIVARIATE DATA=work.data&j;
VAR diff;
OUTPUT OUT=work.pctile&j%SYSFUNC(PUTN(&i,z2.)) PCTLPRE=P&j_ PCTLPTS=1 to 100 BY 1;
RUN;
%END;
%END;
%MEND;
It seemed that the use of work.data&j is fine, but it is error to specify it as: PCTLPRE=P&j_
How can I put this right?
please change
PCTLPRE=P&j_ PCTLPTS=1 to 100 BY 1; to
PCTLPRE=P&j._ PCTLPTS=1 to 100 BY 1;
please change
PCTLPRE=P&j_ PCTLPTS=1 to 100 BY 1; to
PCTLPRE=P&j._ PCTLPTS=1 to 100 BY 1;
LinLin's answer should solve the problem. SAS will interpret &J_ as a request to expand the non existent macro variable named J_. Placing the period after the J will let SAS know that you want to expand the value of the macro variable J instead.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.