2017-08-15 34 views
0

SASで連結マクロ変数を使用してデータセット名を変更したい。以下のサンプルコードを使用するとエラーが発生します。構文が間違っているのですか、このように連結機能を使用することはできませんか?SAS Proc Datasets - マクロ変数を使用してデータセット名を変更する

コード:受信

%let term=201610; 
%let emp='bob'; 

Proc Datasets library=work; 
change testset = cat(&emp,&term); 
run; 

エラー:

ERROR 22から322:構文エラー、次のいずれかを期待:ALTER、MEMTYPE、MT、MTYPE、PROTECT、PW、読み書き。

ERROR 76-322:構文エラー。文は無視されます。

答えて

1

マクロ変数を連結する必要はありません。マクロ変数を検索し置換するようなものです。 あなたが今引用符を持っているので、これは何が起こるかです:

change testset = cat('bob', 201610) 

しかし、CAT機能が有効ではありません。技術的に%SYSFUNC()を使用してCAT関数を使用することはできますが、より簡単な方法があります。

%let term=201610; 
%let emp='bob'; 

Proc Datasets library=work; 
change testset = &emp&term.; 
run;quit; 

PROC DATASETSは、終了するにはQUITが必要であることに注意してください。

+1

'bob'周辺の引用符も削除する必要があります。 – Longfish

+0

ありがとう、それを修正しました。 – Reeza

関連する問題