【问题标题】:SAS Enterprise Guide log line number doesn't make senseSAS Enterprise Guide 日志行号没有意义
【发布时间】:2013-11-13 19:43:48
【问题描述】:

我在运行程序时在日志中收到警告,但显示警告的行号没有意义。我已经复制了下面的部分日志。它说该操作发生在第 4229 行,但我的代码中只有 1500 行,警告在日志中的第 1895 行。当我的代码中只有 1500 行时,为什么它告诉我警告出现在第 4229 行?

警告:除以零,结果设置为缺失值。

count : 出现次数为 201 操作:/在第 4229 行第 11 列 操作数:_TEM1001、_TEM1002 _TEM1001 1 行 201 列(数字)

_TEM1002 1 行 1 列(数字)

     0

语句:ASSIGN 在第 4228 行第 245 列 警告:除以零,结果设置为缺失值。

count : 出现次数为 201 操作:/在第 4229 行第 43 列 操作数:_TEM1001、_TEM1003 _TEM1001 1 行 201 列(数字)

_TEM1003 1 行 1 列(数字)

     0

【问题讨论】:

  • 你在使用宏吗?
  • 如果清除日志,日志行号不会被重置。
  • 是的,它在宏内
  • 这个程序是我打开 SAS 后运行的第一件事,所以在程序运行之前日志中应该没有任何其他内容。
  • 如果您多次运行宏,每次运行宏都会创建一个新行。没有实际代码,这不是一个真正可以回答的问题。

标签: sas enterprise-guide


【解决方案1】:

如前所述,宏正在为您生成 SAS 代码,使得提交的 SAS 行数超过您代码中的行数。

打开 MPRINT 以查看导致问题的代码。从您的错误行看来,您正在使用 IML。这是一个例子:

%macro loop_then_error();
%do i=10 %to 0 %by -1;
proc iml;
x = {1 1};
x = (x || x) / &i;
quit;
%end;
%mend;

options nomprint;
%loop_then_error;

options mprint;
%loop_then_error;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多