2016-11-15 1 views
-1

私は、異なる年齢で測定された被験者IDを持っています。私はこれを行うためにSASを使用しています件名ごとに最初の行から行を引く方法は?

Subject Gender Datasource MHGCAT_COD_4 MHGCAT_COD_6 MHGCAT_COD_11 age_ga window 
124  1  1   21   122   1212   38  0 
124  1  1   21   122   1212   39  1 
124  1  1   21   122   1212   41  3 
124  1  1   21   122   1212   43  5 
125  1  1   21   122   1212   33  0 
125  1  1   21   122   1212   38  5 

:私はこのような計算余分な列を作成したい enter image description here

Subject Gender Datasource MHGCAT_COD_4 MHGCAT_COD_6 MHGCAT_COD_11 age_ga 
124  1  1   21   122   1212   38 
124  1  1   21   122   1212   39 
124  1  1   21   122   1212   41 
124  1  1   21   122   1212   43 
125  1  1   21   122   1212   33 
125  1  1   21   122   1212   38 

:それはこのようになります。ありがとう!

フォーマットがひょっとすると画像が添付されます。

+0

新しい変数のロジックをより詳しく説明してください。試したコードを表示してください。 – Tom

+0

新しい変数は、最初のage_ga値をベースラインとし、その後のすべての他の値をベースラインとします。データはage_gaで既にソートされています。私は行2行1を引いたが、同じことをするたびに、新しい主題IDごとにサイクルを開始するようにコードに要求することはできない。したがって、ウィンドウ、行1 = 0..window、行2 = age_ga行2 - age_ga行1 .....ウィンドウ、行5 = 0、ウィンドウ行6 = age_ga行6 - age_ga行5 .. –

答えて

0

変数BY処理を使用します。

data want ; 
    set have ; 
    by subject age_ga ; 
    if first.subject then index_age = age_ga ; 
    retain index_age ; 
    window = age_ga - index_age; 
run; 
+0

これは動作します!それを保持するのではなく、index_ageを削除すると良いでしょう。解決していただきありがとうございます! –

関連する問題