Macros 无法在宏sas中确定行和列

Macros 无法在宏sas中确定行和列,macros,sas,Macros,Sas,你好, 我正在启动宏模拟,但每次都会出现以下错误,即无法确定行和列最有可能的情况是,您没有SAS 9.4(甚至可能有旧版本的9.4)。我认为,在SAS 9.4 TS1M5中添加了用于统一的RAND发行版的附加选项(尽管我找不到证据表明它是在特定的维护版本中添加的,并且可能在之前的预生产状态下是可能的,但它不在中,并且他们在9.4 TS1M5中对RAND进行了大量更改);在此之前,任何论点都不可能统一 您很可能必须这样做: %macro pesee(nom, imprec, poids, nb_s

你好,
我正在启动宏模拟,但每次都会出现以下错误,即无法确定行和列

最有可能的情况是,您没有SAS 9.4(甚至可能有旧版本的9.4)。我认为,在SAS 9.4 TS1M5中添加了用于统一的RAND发行版的附加选项(尽管我找不到证据表明它是在特定的维护版本中添加的,并且可能在之前的预生产状态下是可能的,但它不在中,并且他们在9.4 TS1M5中对RAND进行了大量更改);在此之前,任何论点都不可能统一

您很可能必须这样做:

%macro pesee(nom, imprec, poids, nb_simul);
data &nom.;
do i=1 to &nb_simul.;
PoidsR= RAND('UNIForm', &poids.*(1- &imprec.), &poids.*(1+ &imprec.));
output;
end;
run;
%mend;
%pesee(Sucre, 0.1,200,3);

当添加
调用streaminit
行以获得固定种子(我强烈推荐)时,这将产生与上述相同的结果。

您好,代码是在9.4上执行的,我没有错误或警告。您可以添加选项mprint mlogic symbolgen在您的代码之前&可能是shelpto查找错误。启动新会话并再次运行。这对我来说很有用,可以显示更多的代码,无论是之前还是之后,如果它是从另一个宏中调用的;“无法确定行和列”本身不是错误。这是另一个错误的伴随,只是说SAS无法在正在执行的宏中告诉您它在日志的哪一行,因为宏生成自己的行。您在日志中还看到了哪些错误?亲爱的朋友,是的,在程序重新启动后,宏开始工作。非常感谢你!
%macro pesee(nom, imprec, poids, nb_simul);
data &nom.;
do i=1 to &nb_simul.;
PoidsBase= &poids. + (2*&imprec.)*RAND('UNIForm') - &imprec.;
output;
end;
run;
%mend;
%pesee(Sucre, 0.1,200,3);