具有相同id的sas变量差异

时间:2017-01-05 09:53:40

标签: variables sas difference replicate

我非常感谢你们,特别是当我遇到有关使用SAS进行调制的问题时。

我有一个如下的数据集。

ID          key      score 
10002817 200207826243 0 
10002817 200207826271 0 
10002817 200208532180 0 
10002976 200301583978 0 
10003685 200302311690 0 
10006588 200401613047 0 
10006588 200502882618 0 
10009377 201007510866 1 
10009377 201111777969 0 
10011044 200801328219 2 
10011044 200803290654 3 
10011044 200803290728 1 
10011044 200803290905 1 
10011044 200803291161 0

有时会在数据中重复id。 我希望根据ID看到得分的最大差异。 也就是说,形式如下。

ID    key   score  diff_score
10002817 200207826243 0 0
10002817 200207826271 0 0
10002817 200208532180 0 0
10002976 200301583978 0 0
10003685 200302311690 0 0
10006588 200401613047 0 0
10006588 200502882618 0 0
10009377 201007510866 1 1
10009377 201111777969 0 1
10011044 200801328219 2 3
10011044 200803290654 3 3
10011044 200803290728 1 3
10011044 200803290905 1 3
10011044 200803291161 0 3

我如何用SAS做到这一点?

如果你帮助我会很有帮助。 谢谢大家。

1 个答案:

答案 0 :(得分:1)

您可以使用proc sql执行此操作:

proc sql;
  create table want as 
  select ID, key, score, max(score)-min(score) as diff_score
  from have
  group by ID;
quit;

使用proc sql的一个优点是您的数据不需要进行排序才能使用。