2014-10-22 3 views
2

일부 관측치가 식별자 인 데이터베이스가 있는데 일부는 그렇지 않습니다. 내 ident 변수의 중복 인 관측치를 삭제했지만 관찰을 유지하기 위해 ident이없는 새 데이터베이스를 만들고 싶습니다. 나는 단순히 일종의 nodupkeynodupkey로 누락 된 값 유지

proc sort nodupkey data=have; 
    by ident; 
    run; 

발동 할 경우

은 그 다음 또한 누락 된 값을 제거합니다. 그것을 할 수있는 간단한 방법이있다 (즉, 데이터 세트를 깨뜨리지 않고 proc nodupkey를 하나의 파트로 정렬 한 다음 다시 어셈블한다)

답변

3

중복을 제거 할 때 몇 가지 옵션이있다.

먼저 에있는 dupout=<dataset>은 모든 복제본을 다른 데이터 집합으로 보내고이를 통해 원하는 작업을 수행 할 수 있습니다. 하지만이 부분은 데이터 세트를 중단하는 백엔드 버전이며 작은 부분 만 분해하므로 더 빠릅니다.

간편한 방법은 직접 삭제하는 것입니다.

proc sort data=have; 
    by ident; 
run; 

data want; 
    set have; 
    by ident; 
    if (first.ident) or missing(ident); 
run; 

각 ident에 대한 첫 번째 레코드와 ident가없는 레코드가 유지됩니다.