选择每个时间范围的中值

时间:2017-02-14 16:04:12

标签: sas range median

我需要在每个年龄段中为每个id选择一个中值。所以在下表中,对于id = 1,在6个月的age_range中,我需要为第2行选择值。基本上,我需要为每个id创建一个列,其中只有选择每个范围。

id      wt    age_range
1       22       6
1       23       6
1       24       6
2       25       12
2       24       12
2       44       18

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您正在寻找一个新列,其中每个id和age_range都有中值,以便进行比较。您可以使用proc means输出中位数然后将其合并回原始数据集,在基本SAS中执行此操作。但是,proc sql只需一步即可完成此操作,并轻松命名新列。

proc sql data;
  create table want as
  select id, wt, age_range, median(wt) as median_wt
  from have
  group by id, age_range;
quit;


id  wt  age_range  median_wt
1   24         6          23
1   22         6          23
1   23         6          23
2   24        12        24.5
2   25        12        24.5
2   44        18          44