以下は、例外データセットからデータセットを作成するコードです。end
とend8
とend7
はマクロ変数ですが、マクロ変数の末尾に.
を追加するのはなぜでしょうか?最後のもの "。"マクロ変数の後に
data tab4a_&end.;
set
mck_tab4a_&end8.
mck_raw.mck_tab4a_&end7.
run;
以下は、例外データセットからデータセットを作成するコードです。end
とend8
とend7
はマクロ変数ですが、マクロ変数の末尾に.
を追加するのはなぜでしょうか?最後のもの "。"マクロ変数の後に
data tab4a_&end.;
set
mck_tab4a_&end8.
mck_raw.mck_tab4a_&end7.
run;
ドットはマクロ変数の最後を示します。これは、マクロテキストが静的テキストと組み合わされている場合によく使用されます。 SASがマクロ変数がどこで終了するかを知るために、ファイル名で指定します。それはyear_accounts
というマクロ変数を探しされるので、例えば:
%let year=2017;
%let filename = &year._accounts.xlsx;
%put &filename;
最初ドットなし2017_accounts.xlsx
を生成し、SASは、警告メッセージを生成します。 (マクロがどこで終了し、テキストが始まるかはわかりません)。
マクロ変数の後ろにスペースや文の終わりがある場合は、ドットを省略することができます。この場合、ドットを含めても効果はありません。一部の人々は常にドットを含めることが良いと思う。
マクロ変数の終了を示すために使用されます。これは、マクロ変数とテキストを混在させるときに重要です。例えば
:
%let my_var = TEST;
%let my_var_new = WRONG;
%put &my_var._new;
%put &my_var_new.;
がOUTPUT:
58 %let my_var = TEST;
59 %let my_var_new = WRONG;
60 %put &my_var._new;
TEST_new
61 %put &my_var_new.;
WRONG
マクロ変数がMY_VARかmy_var_newであればどのようにマクロプロセッサが知っているのですか?この期間は、SASにマクロ変数が終了する場所を示します。
ドットを含めると、エディタでマクロ変数が緑色に変わり、コードの読み取りとデバッグに役立ちます。