如何从每个主题的第一行中减去行?

How to subtract rows from first row, per subject?

我有不同年龄测量的受试者 ID。它看起来像这样: 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 来执行此操作。谢谢!

附上图片以防格式混乱。

使用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;