2016-05-30 14 views
0

以下のコードをマクロとして実行すると、データセットzcorr(ods出力を使用)を作成できません。私は間違って何をしていますか?SASマクロで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); 

答えて

1

ODS OUTPUTステートメントは、プロシージャ内またはプロシージャ内にある必要があります。 ODS TRACEステートメントはテーブル/結果を生成しないため、これらのステートメントを削除できます。

また、マクロ内のコメントには注意し、 '%* comment;'を使用してください。アスタリスクだけではなく、

+0

ありがとうございます。あなたの提案は私の問題を解決しました!私もこのプログラムに別のステップを追加する必要があったが、私は何か間違っていると思う。私はintと呼ばれる最初のデータステップに別の変数を追加しました。このプログラムを毎月、年、および整数の組み合わせで実行できるのは素晴らしいことです。私はマクロを更新しようとしましたが、何かが間違っていると思います。元の質問で更新されたコードを見て、間違えているかどうか教えてください。私がこのフォーラムで別の質問としてこれを求めなければならないなら、私もそれをすることができます。本当にありがとう! –

+0

@BetsyBはい、新しい質問を作成する必要があります。訂正された修正コードを含めてください。 – Reeza

関連する問題