2017-03-14 14 views
0

私はSASを初めて使用しています。 SASでデータ操作を行うためのコードを書いています。問題は、 のコードを実行する前に、手動でデータセットの名前を変更する必要があることです。それは多くの時間を要した。命名規則にはいくつかのパターンがあります。 データセット名がXXX_IN_MUM_Dec_2016であるとします。だから、私はXXX_IN_MUM_Jan_2017SASのvaribaleに基づいていくつかのデータセットを作成したい

にサンプルコード名を変更している実行する前に:上記のコードで

data XXX_IN_MUM_Dec_2016; 
set XXX_IN_MUM_Dec_2016; 
FILENAME_MONTH=input(CATS(strip("01"),SCAN(strip(filename_BILL),4,"_")),anydtdte.); 
format FILENAME_MONTH monyy7.; 
if intnx('month','1SEP2016'd,0,'b'). <= FILENAME_MONTH <= intnx('month','1FEB2017'd,0,'e') then output; 
run; 

を、私は、変数の代わりに、データセット名(XXX_IN_MUM_Jan_2017)を渡したいです。

おかげ モハマドシャムス

+0

また、IF文で使用される日付範囲を変更したいですか? – Tom

+0

はい...ほとんどの場合 –

+0

本当に必要なものを反映するために質問を更新してください。どのような日付価値がありますか?今日の日付?他に何か?あなたはそれを何日に変換する必要がありますか?ファイル/データセットの名前の付け方に合わせて日付をどのような形式に変換する必要がありますか? – Tom

答えて

0

あなたはマクロ変数SYSDATEが自動的に作成されたSASセッションシステムを起動するたび。 2桁の日付、月名の最初の3文字、2桁の年を表示します。したがって、使用することができます:

%let month = %substr(&sysdate, 3, 3); 
%let year = %substr(&sysdate, 6, 2); 
%put &month &year; 

data XXX_IN_MUM_&month._20&year; 
    set XXX_IN_MUM_&month._20&year; 
    /* your code*/ 
run; 

今日、データセット名はXXX_IN_MUM_mar_2017に解決されました。

関連する問題