0

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

ここでは従来の 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;
4

1 に答える 1

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;

これにより、値が 1 または欠落している変数 DUMMYVAR が作成されます。値を 1 または 0 にしたい場合は、最初の DO ループの前に 0 に設定できます。if first.date then dummyvar=0;または、既存の IF ステートメントの前にステートメントを追加します。

于 2016-08-16T16:15:07.107 に答える