Loops 我怎样才能避免得到;“日志窗口已满”;SAS中以下代码中的消息?

Loops 我怎样才能避免得到;“日志窗口已满”;SAS中以下代码中的消息?,loops,macros,sas,Loops,Macros,Sas,如何更新下面的代码,使我不会收到“日志窗口已满”消息?日志窗口中生成的大多数行都是由于proc corr。我尝试在代码开头添加proc printto行,但由于某些原因,日志窗口仍然被填满。谢谢 PROC PRINTTO PRINT='C:\Users\test\auto.lst' NEW; RUN; %MACRO RunProgram(month, year, n); data sourceh.group2; set sourceh.group_&month.&year.;

如何更新下面的代码,使我不会收到“日志窗口已满”消息?日志窗口中生成的大多数行都是由于proc corr。我尝试在代码开头添加proc printto行,但由于某些原因,日志窗口仍然被填满。谢谢

PROC PRINTTO PRINT='C:\Users\test\auto.lst' NEW;
RUN;

%MACRO RunProgram(month, year, n);
data sourceh.group2;
set sourceh.group_&month.&year.;
int1=int;
int2 = ceil(int/2);
int3 = ceil(int/3);
int4 = ceil(int/4);
int5 = ceil(int/5);
int6 = ceil(int/15);
int7 = ceil(int/30);

proc sort data=sourceh.group2;
by symbol day month year int&n.;
run;

proc corr data=sourceh.group2; by symbol day; 
var zone ztwo;
ods output pearsoncorr=sourceh.zcorr;
run;

%MEND ;

%macro l;

%do n=1 %to 7;

%RunProgram(Dec, 2014, &n);
%RunProgram(Nov, 2014, &n);
%end;

%mend;

%l;

使用proc重定向日志 打印到

Proc printto log='templog.log' new;
Run;
如果以后使用,则可以重置

 Proc printto log=log; run;
或者,您可以将选项nonotes设置为on,以便除非出现错误,否则日志不会得到输出。这会使调试变得困难

 Option nonotes;
重新启用“注释”选项:

 Option notes;

使用proc重定向日志 打印到

Proc printto log='templog.log' new;
Run;
如果以后使用,则可以重置

 Proc printto log=log; run;
或者,您可以将选项nonotes设置为on,以便除非出现错误,否则日志不会得到输出。这会使调试变得困难

 Option nonotes;
重新启用“注释”选项:

 Option notes;

一般来说,我认为您应该输出日志,以便检查是否出现了问题;Reeza的回答解决了这一问题。但是,您也可以使用命令清除日志

dm 'clear log';

如果将其作为RunProgram宏的第一行或最后一行插入,则每次迭代宏时,日志都将被清除。只要宏的一次迭代没有填满您的日志,这将解决您的问题。

一般来说,我认为您应该输出日志,以便检查是否出现问题;Reeza的回答解决了这一问题。但是,您也可以使用命令清除日志

dm 'clear log';

如果将其作为RunProgram宏的第一行或最后一行插入,则每次迭代宏时,日志都将被清除。只要宏的一次迭代没有填满您的日志,这将解决您的问题。

请尝试
ODS LISTING CLOSE
,然后
ODS列表当您要重新打开列表目标时。您已移动列表目标而不是日志。为什么
PROC CORR
正在填充日志?也许有一个问题需要解决?非常感谢,我意识到我没有删除上的ods跟踪,这也填充了日志文件
,然后
ODS列表当您要重新打开列表目标时。您已移动列表目标而不是日志。为什么
PROC CORR
正在填充日志?也许有一个问题需要解决?非常感谢,我意识到我没有在上擦除ods跟踪,这也填充了日志文件。谢谢。我应该把这些行放在程序的什么地方?它们应该进入宏内部吗?您使用的是哪个选项?如果proc print将其放置在宏之前。如果“注释”选项将它们放在内部,则宏将在顶部显示nonotes,并在底部重置为notes。这些都是建议,但可以放在不同的位置。谢谢。我应该把这些行放在程序的什么地方?它们应该进入宏内部吗?您使用的是哪个选项?如果proc print将其放置在宏之前。如果“注释”选项将它们放在内部,则宏将在顶部显示nonotes,并在底部重置为notes。这些都是建议,但可以放在几个不同的位置。