2016-08-16 32 views
0

CASE_ID(x yとz)のデータセット、各CASE_IDの複数の日付のセット(重複した日付を含む)、および変数VARがあります。グループ内のグループによってダミー変数DUMMYVARを作成したいと思います。特定の日付のCASE_ID xのVAR = "C"の場合、その日付のCASE_ID xに対応するすべての観測値のDUMMYVAR = 1となります。SAS:グループ内のグループによる変数の値のダミー変数のコーディング

クラシック2XDOWがここの鍵になると思いますが、これはSASを使用した3週間目ですが、2つのBYグループでこれを取得するのが難しいです。

私が参照され、ここでHaikuoのコードのバリエーションを書き込もうとしています

PROC SORT have; 
     by CASE_ID DATE; 
    RUN; 

    data want; 
    do until (last.DATE); 
     set HAVE; 
     by date notsorted; 
     if var='c' then DUMMYVAR=1; 

    do until (last.DATE); 
     set HAVE; 
     by DATE notsorted; 

     if DATE=1 then ???????? 

    end; 
    run; 

答えて

0
あなたがやっているグループに合わせてBYステートメントを変更し

。 2番目のループでは、単純なOUTPUT;文を追加します。新しいデータセットに元のデータセットのすべての行と新しい変数DUMMYVARが追加されます。

data want; 
    do until (last.DATE); 
    set HAVE; 
    by case_id date; 
    if var='c' then DUMMYVAR=1; 
    end; 
    do until (last.DATE); 
    set HAVE; 
    by case_id date; 
    output; 
    end; 
run; 

これにより、変数DUMMYVARの値が1または不足します。値を1または0にする場合は、最初のDOループの前に0に設定するか、または、既存のIF文の前にif first.date then dummyvar=0;文を追加します。

関連する問題