数値変数をこのマクロに渡そうとしています。私はKEEPステートメントとSETステートメントを通すことができますが、RENAMEステートメントに到達すると、これらのエラーが発生します。SASの数字列名を使用
エラー:変数 '2013'nはファイルWORK.'2013'nにありません。
エラー:ファイルWORK.'2013'nに無効なDROP、KEEP、またはRENAMEオプションがありません。
%macro step2(year,cwyear);
TITLE; FOOTNOTE;
DATA WORK._EG_CFMT;
LENGTH label $ 9;
SET WORK."&year."n (KEEP="&year."n "&cwyear."n RENAME=("&year."n =start "&year."n =label)) END=__last;
RETAIN fmtname "cw&year."n type "C";
end=start;
RUN;
%mend step2;
私は&年前後に二重引用符を変更します。単一引用符に、次のように:
SET WORK.'&year.'n (KEEP="&year."n "&cwyear."n RENAME=("&year."n =start "&year."n =label))
私はこのエラーを取得する:
ERROR:ファイルWORK」 & YEAR.'n.DATAは存在しません。
私はすべて二重引用符に戻って変更して、n個のを削除すると、私は次のエラーを取得する:
ERROR 22から322:構文エラー、次のいずれかの期待:名、引用符で囲まれた文字列を、;、 CUROBS、END、INDSNAME、KEY、KEYRESET、KEYS、 NOBS、OPEN、POINT、DATA、LAST、NULL。
この作品を作成するにはどうすればよいですか?
ありがとうございました!
あなたは二重引用符に変更したときに、なぜあなたは 'N'を削除しますか? – Joe
元のコードに二重引用符とnがあり、エラーが発生しているためです。私はすでに何かが動作していないと知っているものとは異なるものを試そうとしていました。 – theponcer
元のエラーメッセージは、変数が存在しないということだけです。名前の代わりにラベルで変数を参照しようとしていませんか? – Tom