2012-03-07 2 views
2

다음 데이터가 있다고 가정하지만 기본적으로 그룹의 나머지 값에 대해 첫 번째 값인 a와 b를 복사하려고합니다 (맨 아래 테이블).SAS는 나머지 그룹에 대해 그룹의 첫 번째 값을 반환합니다.

예를 들어, 그룹 1에서 a = 3의 첫 번째 값. 그룹의 2, 4, 1을 변수 b에 대해 3 - 동일하게 바꾸려고합니다.

원본 데이터 :

grp a b 
---------- 
1 3 2 
1 2 1 
1 4 2 
1 1 3 
2 2 4 
2 1 1 
2 2 2 
2 3 1 

업데이트 데이터 : 사전에

grp a b 
---------- 
1 3 2 
1 3 2 
1 3 2 
1 3 2 
2 2 4 
2 2 4 
2 2 4 
2 2 4 

감사합니다.

+0

a 및 b의 첫 번째 값은? 정교한이 – Teja

답변

4

그룹 별 처리와 retain 문을 사용하여이 작업을 수행 할 수 있습니다. 이 작업을 수행하려면 먼저 입력 데이터 집합을 그룹별로 정렬해야합니다.

data output(keep=grp a b); 
    retain firsta firstb; 
    set input; 
    by grp; 
    if first.grp then do; 
    firsta = a; 
    firstb = b; 
    end; 
    else do; 
    a = firsta; 
    b = firstb; 
    end; 
run; 
+0

고마워요! 당신은 생명을 구하는 사람입니다. – Ken

관련 문제