シンプルなマクロを作成し、シンプルなSASデータステップで適用して、出力を表示する際の問題を示しました。SASマクロ変数値を出力する方法
マクロ:
%macro test_func(var=);
%put &var;
%mend;
Dataステップ:
data test_data_step;
value = 0;
%test_func(var = value);
run;
私の問題は、私が見出力は単なる文字列value
ではなく、名前が等しい変数に保持されている値であるということです文字列。
私はSASがこれをやっている理由をあいまいに理解していると思いますが、希望の値を与える方法(この場合は0
)はわかりません。だから私はどのようにその機能を達成することができますか?
ありがとうございます!
+1。ありがとう@ジョー!いつものように、あなたの答えは簡潔ではっきりしており、有益です - 毎回何かを学びます! 1つの問題:変数値を出力することに私の主な関心は私のマクロのトラブルシューティングでした。このアプローチでは、マクロ内に複数の非マクロステートメントがあり、トラブルシューティング中に他のエラーが発生します。だから私は進める方法が不思議に残っている。私はここで別の質問をすることができますが、私は少なくとも自分自身を理解しようとします。あなたは何をお勧めします?再度、感謝します! – Rookatu
本当にあなたがやっていることに依存します。しかし、最終的に、マクロ言語( '%put 'など)は実際の値にアクセスできなくなります。おそらく問題を起こさない方法でデバッグ文をそこに置く方法を理解する必要があります。私がしばしばやることの1つは、メインコード本体にコードをデバッグすることです(実際にマクロに入っているかどうかは関係ありません)。そして、 '&debug = Y'の変数をチェックする'%if'ブロックを '&debug = Y'デバッグコード。 – Joe