2017-06-26 7 views
1

私は、(グローバル変数として)調査したい日付をユーザーが入力できるSASプログラムを作成しています。私はユーザーの変数を作成する3ヶ月前の2番目の変数を作成したい。SAS変数間の関係の作成

%let var1 = [user manually writes the variable in the code] 
%let var2 = [3 months before var1] 

私は動作しません

var2 = intnx('month', input(put(&var1.,8.),yymmdd8.),-3) 

を試してみました。

+1

コード内にマクロ変数と実際のデータセット変数が混在しているようです。 2番目のマクロ変数を生成するために使用するメソッドと互換性のある最初のマクロ変数に日付を入力するために使用する形式をユーザーに正確に伝える必要があります。 SASマクロ変数はテキスト文字列であることに注意してください。 – Tom

答えて

2

YYYYMMDDの形式で日付文字列を持つマクロ変数を使用して作成すると仮定すると、%SYSFUNC()を使用してマクロ変数を作成できます。

%let date1=20170213 ; 
%let date2=%sysfunc(intnx(month,%sysfunc(inputn(&date1,yymmdd8)),-3),yymmddn8); 
%put &=date1 &=date2; 


DATE1=20170213 DATE2=20161101 
+0

これは機能します。ありがとうございました! –

関連する問題