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

时间:2016-11-15 15:09:19

标签: arrays sas rows subtraction

我的主题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来做这件事。谢谢!

如果格式出现乱码,则附上图片。

1 个答案:

答案 0 :(得分: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;