如何更新以下代码,以免我的日志窗口显示为“#”;信息?在日志窗口中生成的大多数行都是由于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;
答案 0 :(得分:4)
使用proc重定向您的日志 Printto。
Proc printto log='templog.log' new;
Run;
如果之后使用
,您可以重置 Proc printto log=log; run;
或者,您可以设置选项nonotes on,以便除非出现错误,否则不会输出日志。这可能使调试变得困难。
Option nonotes;
重新打开备注选项:
Option notes;
答案 1 :(得分:1)
一般来说,我认为你应该输出你的日志,这样你就可以查看是否出了问题。 Reeza的回答解决了这种方法。但是,您也可以使用命令
清除日志dm 'clear log';
如果将其作为RunProgram宏的第一行或最后一行插入,则日志将在每次宏的迭代中清除。只要宏的一次迭代没有填满你的日志,这就可以解决你的问题。