【问题标题】:Line and column cannot be determined in macro sas在宏sas中无法确定行列
【发布时间】:2018-11-30 09:23:50
【问题描述】:
%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);

你好, 我正在启动宏模拟,但它一直给出以下错误Line and column cannot be determined

【问题讨论】:

  • 您好,代码是在 9.4 上执行的,我没有错误或警告。您可以在代码前添加options mprint mlogic symbolgen;吗?可能有助于查找错误。
  • 开始一个新会话并再次运行。它也适合我
  • 显示更多代码,之前和之后,以及是否从另一个宏中调用。
  • 嗨; “无法确定行和列”本身并不是错误。这是另一个错误的伴随,只是说 SAS 无法在执行宏中告诉您它在日志的哪一行,因为宏会生成自己的行。您在日志中还看到了哪些其他错误?
  • 亲爱的朋友们,是的,在程序重新启动后,宏起作用了。非常感谢!

标签: macros sas


【解决方案1】:

您很可能没有 SAS 9.4(或者甚至可能没有 9.4 的旧版本)。我相信在 SAS 9.4 TS1M5 中添加了 UNIFORM 的 RAND 分发的其他选项(尽管我找不到证据表明它是在特定的维护版本中添加的,并且在预生产状态之前可能是可能的,但不是在9.3 documentation 中,他们在 9.4 TS1M5 中对 RAND 进行了很多更改);在此之前,UNIFORM 没有任何参数。

您很可能必须这样做:

%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);

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

【讨论】:

    猜你喜欢
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2022-01-17
    • 1970-01-01
    • 2019-12-24
    相关资源
    最近更新 更多