データセット内の変数名に接尾辞を追加するマクロを作成したいとします。SAS:データセット内の変数に接尾辞を追加するマクロを作成する
NOTE: No rows were selected.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
WARNING: Apparent symbolic reference RENAME_LIST not resolved.
NOTE: Line generated by the invoked macro "ADD_SUFFIX".
2 rename &rename_list; run;
-
22
76
NOTE: Enter RUN; to continue or QUIT; to end the procedure.
ERROR 22-322: Expecting a name.
ERROR 76-322: Syntax error, statement will be ignored.
私は引用符でライブラリやデータセットの名前を入れた場合、それはつまり、文字列rename_listではなく、に値を追加する最初のブロックのために働く:
%macro add_suffix(library=,dataset=,suffix=);
proc sql noprint;
select cat(name, ' = ', cats('&suffix.',name)) into :rename_list separated by ' ' from
dictionary.columns where libname = '&library.' and memname= '&dataset.';
quit;
proc datasets library=&library nolist nodetails;
modify &dataset;
rename &rename_list;
run;
quit;
%mend;
%add_suffix(library=OUTPUT,dataset=CA_SPREADS,suffix=CA);
それはエラーメッセージを与える:以下の私のコードですあなたは、単一引用符'
ではなく、二重引用符"
でそれらをラップしているので、procのデータセットのステップのために
プレフィックスに名前を追加しようとしているようです。 – Tom
ここでは考慮しませんが、名前が32文字以下であることを確認する必要があります。リネーム部分については、私自身CATXが好きですが、それは読みやすいです。 https://gist.github.com/statgeek/82d9f2854edc01560e0f – Reeza