2017-01-05 2 views
2

많은 분들께 감사드립니다. 특히 SAS으로 변조하는 데 문제가있을 때 감사드립니다.동일한 id와의 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로 만들 수 있습니까?

나를 도와 주시면 도움이 될 것입니다. 감사합니다. 이 작업을 위해 데이터를 정렬 할 필요가 없습니다되는 시저의 SQL을 사용의 장점

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

하나 :

답변

1

당신이 사용 시저의 SQL을 할 수 있습니다.

+0

OP는 ID 당 최대 점수 차이를 찾고 있습니다. 솔루션은 예제 데이터와 함께 작동하지만 각 ID에 대해 최소 점수가 0이기 때문입니다. 계산을 'max (score) - min (score)'로 바꿔야합니다. – Longfish

+0

그 자리를 가져 주셔서 감사합니다. 제 대답을 편집했습니다. –