用户登录
用户注册

分享至

sas宏编程

  • 作者: 美女你很内涵
  • 来源: 51数据库
  • 2020-09-29
先写一般的SAS语句,然后去替换需要用到变量的部分。
引号问题:如果用单引号,那么SAS不会替换里面的变量值;如果用双引号,那么里面&variable的值会被替换掉。
SAS的报错记录:有MERROR(找不到macro)、SERROR(找不到变量)、MLOGIC(SAS将在日志中输出详细的执行情况)、MPRINT(SAS将在日志中输出翻译出来的SAS代码)、SYMBOLGEN(SAS将在日志中输出变量当时的赋值)。



  下面这段code应该可以解决你的问题


%macro creatdata;

%do i=1 %to 10;

data file&i.(drop=id);
do id=1 to 5;
score=ceil(100*ranuni(&i));
output;
end;
run;

proc means data=file&i ;
var score;
output out=outfile&i. mean=score_mean;
run;

data _null_;
set outfile&i.;
call symput( compress("score_mean"||"&i."), put(score_mean, 8.) );
run;

data out&i;
score=&&score_mean&i;
run;

data newscore&i;
set file&i. out&i. ;
run;

%end;

%mend;

%creatdata;
软件
前端设计
程序设计
Java相关