当我将下面的代码作为宏运行时,我无法创建数据集zcorr(使用ods输出)。我做错了什么?
当我运行相同的代码而不是宏(即分别于2014年11月和2014年12月)时,没有问题。
我想修复宏,因为我必须再运行代码几个月。任何帮助将不胜感激, 谢谢!
%MACRO RunProgram(month, year);
data sourceh.trades2;
set sourceh.trades_&month.&year.;
if time<34200000 or time>57600000 then delete;
proc sort data=sourceh.trades2;
by symbol day month year int1;
run;
proc corr data=sourceh.trades2; by symbol day;
var zbuy zsell;
ods output pearsoncorr=sourceh.zcorr;
run;
%MEND ;
%RunProgram(Dec, 2014);
%RunProgram(Nov, 2014);
答案 0 :(得分:1)
您的ODS OUTPUT声明应在proc之内或之前。 ODS TRACE语句不生成任何表/结果,因此您可以删除这些语句。
您还应该小心宏中的注释并使用'%* comment;'而不仅仅是一个星号。