楼主: littleblack1984
2107 0

[问答] 救助:SAS宏编程问题 [推广有奖]

  • 3关注
  • 0粉丝

大专生

63%

还不是VIP/贵宾

-

威望
0
论坛币
52 个
通用积分
1.7500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
54591 点
帖子
31
精华
0
在线时间
59 小时
注册时间
2010-10-13
最后登录
2024-4-16

5论坛币
%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

关键词:SAS宏 Expression Parameter statement Executing
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 10:59