2017-09-02 11 views
-1

私はイベントスタディを行いたいと思います。異なるウィンドウサイズでテストしているイベントの説明が必要です。SAS:ベンチマーク期間のダミーを作成する(イベントの周り)

10000個の観測データ(株、日付、指標)を持つデータセットをアナウンスデータセットとマージするとします。今、私が与えたパラメータを除いて、常に0のダミー変数を取得したい:

date = announcement_date then; T + = 1

5へのT-5で= 1 又は window_dummy-11 tにT-60で

window_dummy鉛機能がないので、私はそれを適切に説明し希望と方法がありますまたは類似。

ベスト M

+0

サンプルデータと試したコードを追加してください。 – Quentin

答えて

0

私はこのことから集まったものから、あなたはウィンドウ(またはビニング)を作成し、追加の変数を、持っていたい過去と未来へのX日に到達する変数。

まず、テストデータを生成します。 SAS日付は数字だけそうです:ダミー変数を生成するために残って次に

%let act_date= 21060; 

%let min_date= %eval(&act_date - 5); /*5 days to past*/ 
%let max_date= %eval(&act_date + 3); /*3 days to future*/ 

data begin; 
    do i = 21040 to 21080; 
     my_date= i; 
     output; 
    end; 
    drop i; 
run; 

次は、私たちが窓を計算今

data refined; 
    set begin; 
    if &min_date <= my_date and 
     my_date <= &max_date then 
      dummy = 1; 
    else dummy = 0; 
run; 

を、1はこのすべてを計算することができます単一のデータではなく、これはより有益な方法です。

編集:あなたが好きなようにウィンドウを指定することができます。あなたのケースでは、あなたは持っている可能性があり:

min_date1= %eval(&act_date - 60); 
max_date2= %eval(&act_date - 11); 
.... 

をそれからちょうどまたはオペレータであれば句に追加します。

関連する問題