木子星 发表于 2012-3-27 22:27 
楼主 30个变量全是数值型的?
我写了一个
不知道你能用不? 缺失为点的变量是数值型对待的
没接触过宏,这两天恶补了下以上程序少了个%,应该为
%macro trans(i);
data oringal;
set oringal;*原始数据集;
if var&i eq . then var&i=0;
else if var&i=' ' then var&i='0';
run;
%mend trans;
%macro main;
%let j=1;
%do i=1 %to 30;
%trans(&j);
%let j=%eval(&j+1);
%end;
%mend main;
%main;
多谢哈