非常感谢你们,尤其是当我在使用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 实现此目的?
如果你帮助我,会很有帮助。谢谢大家。
您可以使用 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 的优点之一是,无需对数据进行排序即可正常工作。