안녕하세요
문제에 대한 접근을 ' id 칼럼에 중복이 존재 유무에 따라 새로운 변수 값을 달리하는' 방향으로 잡았습니다.
step1.
data ex1;
input obs id hospital_type;
cards;
1 111 1
2 112 1
3 112 4
4 113 2
5 113 3
;
data ex2;
set ex1;
by id;
if first.id = 0 or last.id=0 then hospital_type_new= "mix";
else hospital_type_new = hospital_type;
run;
ex1 dataset에 id변수 값에 중복이 존재한다면 hospital_type_new이라는 새로운 칼럼에 mix라는 값을 넣고 id변수 값에 중복이 존재하지 않는다면 기존에 존재하는 hospital_type값을 그대로 넣으면 됩니다.
위의 코드로 하면 다음과 같은 결과가 주어집니다.
step2.
proc sort data = ex2 nodupkey out=new_ex2l;
by id;
run;
nodupkey by id를 사용해서 id를 기준으로 중복이 되는 값을 지우면
다음과 같은 결과가 나옵니다.