SAS データステップDATA
は、ステートメントで始まり、ステートメントで終わるコードを上から下に処理しますRUN;
。データ ステップには、コードに明示的な出力ステートメントがない場合のOUTPUT;
直前に含まれる暗黙のステートメントがあります。RUN;
SAS は「解釈される」言語であるため、各データ ステップのコードは実行前にコンパイルされます。コンパイルの一部には、プログラムで使用されるすべての変数の実行属性を含むプログラム データ ベクトル (PDV)と呼ばれる構造体の作成が含まれます。変数は、コードに表示される順序 (上から下) で PDV に定義されます。
便利なデバッグ ツールはPUTLOG
ステートメントです。このステートメントを使用すると、プログラムの実行中に出力を SAS ログ ファイルに書き込むことができます。たとえば、次のように考えてください。
data work.DATA;
if amount_a= . then
amount_a= 1;
amount_b= 1;
putlog amount_a= amount_b=;
amount_a= . ;
putlog amount_a= amount_b=;
total = (amount_a + amount_b) + 0 ;
putlog amount_a= amount_b= total=;
output;
run;
OUTPUT;
説明のために明示的なステートメントを追加したことに注意してください。結果は、1 つのオブザベーションと 3 つの変数を含む SAS データセットです。変数total
は、計算時に欠落しているため、欠落した値になりamount_a
ます。また、SAS ログには、「欠損値が生成されました」ことを示す NOTE が表示されます。
SAS がこれをどのように行うかについて学ぶのに最適な場所は、SAS 言語リファレンス: 概念ブックです。 SAS バージョン 9.3 の書籍へのリンクを次に示します。特に、 Data Step Processingの章を読んでください。