2016-11-15 65 views
-1

我有不同年齡的測量標題。它看起來像這樣: 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 

我想創建一個額外的列,計算如下:

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 

我使用SAS來做到這一點。謝謝!

附加圖片以防格式變亂。

+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而不是保留index_age會很好。感謝您的解決方案! –

相關問題