data final;
input _name_ $;
cards;
test
;
run;
%macro samp(n,m,t);
data temp(drop=i);
do i= 1 to &n;
a=i;
output;
end;
run;
%macro repeat;
proc surveyselect data=temp noprint out=rand method=srs sampsize=&m seed=0;
run;
proc transpose data=rand out=tran;
run;
data trantemp(drop=i);
set tran;
run;
data final(drop=_name_);
set final trantemp;
run;
%mend repeat;
%do i=1 %to &t;
%repeat;
%end;
%mend samp;
%samp(33,7,1000000);
这段代码的大概意思是,参数宏SAMP(n,m,t)从N个号码中无放回抽取M个号码,然后抽取t次,并把t次的结果放在FINAL的DATASET里;我打算运行100万次,但我连运行10000次都很吃力,请问各位大虾如何提高效率呢?