%MACRO TEST;
DATA ECSUBSET;
SET ESTCOV(WHERE=(EFFECT="&VCENTVAL" AND PARAMETER=ROWNAME));
NOBS+1;
CALL SYMPUT('NOBS',NOBS);
RUN;
%PUT NOBS= &NOBS;
%LET KEEPLST=;
DATA _NULL_;
%DO EC=1 %TO &NOBS;
J=&EC;
SET ECSUBSET POINT=J;
CALL SYMPUT("VAR&EC",PARAMETER);
%END;
STOP;
RUN;
%DO EC=1 %TO &NOBS ;
%LET KEEPLST=&KEEPLST &&VAR&EC;
%END;
%PUT KEEPLST= &KEEPLST;
DATA VCMATRIX(DROP=EFFECT PARAMETER ROWNAME);
SET ESTCOV(WHERE=(EFFECT="&VCENTVAL" AND PARAMETER=ROWNAME) KEEP=EFFECT PARAMETER ROWNAME &KEEPLST);
RUN;
PROC DATASETS LIBRARY=WORK MEMTYPE=DATA;
DELETE PARM RT_EST_TEMP ADDPRM COVPARM ESTCOV ECSUBSET;
QUIT;
RUN;
%MEND TEST;
报错如下:
ERROR: %EVAL function has no expression to evaluate, or %IF statement has no condition.
ERROR: The %TO value of the %DO EC loop is invalid.
ERROR: The macro READCOV_T will stop executing