2017-09-12 1 views
0

以下は、例外データセットからデータセットを作成するコードです。endend8end7はマクロ変数ですが、マクロ変数の末尾に.を追加するのはなぜでしょうか?最後のもの "。"マクロ変数の後に

data tab4a_&end.; 
set 
mck_tab4a_&end8. 
mck_raw.mck_tab4a_&end7. 
run; 

答えて

2

ドットはマクロ変数の最後を示します。これは、マクロテキストが静的テキストと組み合わされている場合によく使用されます。 SASがマクロ変数がどこで終了するかを知るために、ファイル名で指定します。それはyear_accountsというマクロ変数を探しされるので、例えば:

%let year=2017; 

%let filename = &year._accounts.xlsx; 

%put &filename; 

最初ドットなし2017_accounts.xlsx

を生成し、SASは、警告メッセージを生成します。 (マクロがどこで終了し、テキストが始まるかはわかりません)。

マクロ変数の後ろにスペースや文の終わりがある場合は、ドットを省略することができます。この場合、ドットを含めても効果はありません。一部の人々は常にドットを含めることが良いと思う。

2

マクロ変数の終了を示すために使用されます。これは、マクロ変数とテキストを混在させるときに重要です。例えば

%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にマクロ変数が終了する場所を示します。

ドットを含めると、エディタでマクロ変数が緑色に変わり、コードの読み取りとデバッグに役立ちます。

関連する問題