SAS中的嵌套do循环
我想用rannor函数生成100个25个观测值的样本,每个样本都是伪正态随机变量。这里,100=样本,25=样本量SAS中的嵌套do循环,sas,Sas,我想用rannor函数生成100个25个观测值的样本,每个样本都是伪正态随机变量。这里,100=样本,25=样本量 %macro bootstrap(bootsample, sample, samplesize); data &bootsample; %do i=1 %to &sample; do j=1 to &samplesize; obsnumber=ceil(&samplesize*rannor(642014)); o
%macro bootstrap(bootsample, sample, samplesize);
data &bootsample;
%do i=1 %to &sample;
do j=1 to &samplesize;
obsnumber=ceil(&samplesize*rannor(642014));
output;
end;
proc univariate data=&bootsample normal;
ods output TestsForNormality=tests;
var obsnumber;
histogram obsnumber;
run;
%end;
run;
%mend;
%bootstrap(bootsample,100,25);
但我不断收到错误:语句无效或使用顺序不当。
我哪里出错了?只需移动第一个%do
%macro bootstrap(bootsample, sample, samplesize);
%do i=1 %to &sample;
data &bootsample;
do j=1 to &samplesize;
obsnumber=ceil(&samplesize*rannor(642014));
output;
end;
proc univariate data=&bootsample normal;
ods output TestsForNormality=tests;
var obsnumber;
histogram obsnumber;
run;
%end;
run;
%mend;
%bootstrap(bootsample,100,25);
或
(我没有sas图形,因此我提交了上面没有直方图语句的代码)只需移动第一个%do
%macro bootstrap(bootsample, sample, samplesize);
%do i=1 %to &sample;
data &bootsample;
do j=1 to &samplesize;
obsnumber=ceil(&samplesize*rannor(642014));
output;
end;
proc univariate data=&bootsample normal;
ods output TestsForNormality=tests;
var obsnumber;
histogram obsnumber;
run;
%end;
run;
%mend;
%bootstrap(bootsample,100,25);
或
(我没有sas图形,因此我提交了上面没有直方图语句的代码)只需移动第一个%do
%macro bootstrap(bootsample, sample, samplesize);
%do i=1 %to &sample;
data &bootsample;
do j=1 to &samplesize;
obsnumber=ceil(&samplesize*rannor(642014));
output;
end;
proc univariate data=&bootsample normal;
ods output TestsForNormality=tests;
var obsnumber;
histogram obsnumber;
run;
%end;
run;
%mend;
%bootstrap(bootsample,100,25);
或
(我没有sas图形,因此我提交了上面没有直方图语句的代码)只需移动第一个%do
%macro bootstrap(bootsample, sample, samplesize);
%do i=1 %to &sample;
data &bootsample;
do j=1 to &samplesize;
obsnumber=ceil(&samplesize*rannor(642014));
output;
end;
proc univariate data=&bootsample normal;
ods output TestsForNormality=tests;
var obsnumber;
histogram obsnumber;
run;
%end;
run;
%mend;
%bootstrap(bootsample,100,25);
或
(我没有sas图形,因此我提交了上面的代码,但没有直方图语句)#2是正确答案#1的速度非常慢,而且更难编码/维护。根本不需要宏-如果您想要宏(如第二个选项中所示)或出于组织目的更喜欢宏,则可以使用宏,但如果您不打算重用宏,则无需使用宏。#2是正确答案#1的速度非常慢,而且更难编码/维护。根本不需要宏-如果您想要宏(如第二个选项中所示)或出于组织目的更喜欢宏,则可以使用宏,但如果您不打算重用宏,则无需使用宏。#2是正确答案#1的速度非常慢,而且更难编码/维护。根本不需要宏-如果您想要宏(如第二个选项中所示)或出于组织目的更喜欢宏,则可以使用宏,但如果您不打算重用宏,则无需使用宏。#2是正确答案#1的速度非常慢,而且更难编码/维护。根本不需要宏-如果您想要宏(如第二个选项中所示)或出于组织目的更喜欢宏,则可以使用宏,但如果您不打算重用宏,则不需要宏。