[SAS] sas에서 그룹별로 각각 두 개 이상 변수에 특정값이 포함된 경우 추출하는 방법
sas에서 그룹별로 여러 변수에 특정값이 있는 경우의 그룹만 추출하는 방법을 알아보도록 하자.
역시나 언어로 이해하기는 어려우니 그림을 통해서 무엇을 할 것인가에 대해 알아보자.
위의 그림을 통한 설명처럼 간단하게 key(그룹)별로 여러변수에 특정값이 존재하는 경우만 출력한다는 것이다.
[코딩과정]
/*예제 데이터 생성*/
data h;
input key$ code1$ code2$;
cards;
111 a b
111 b b
111 b a
222 a b
222 a b
333 b b
333 b a
333 b b
444 a b
444 b a
;
run;
/*원데이터에서 code1에 a값이 있는 키값만 출력*/
data h1(drop=code1 code2);
set h;
if code1='a';
run;
/*키값 중복제거*/
proc sort data=h1 nodupkey; by key; run;
/*원데이터와 code1에 a가 있는 경우의 출력결과를 merge*/
/*1차결과 : 1차적으로 code1에 a가 있는 경우만 출력됨*/
data h2;
merge h(in=a) h1(in=b);
by key;
if b;
run;
/*1차결과에서 code2에 a가 있는 경우 key값만 출력*/
data h3(drop=code1 code2);
set h2;
if code2='a';
run;
/*키값 중복제거*/
proc sort data=h3 nodupkey; by key; run;
/*1차결과와 code2에 a가 있는 경우를 merge*/
/*최종결과 : key별로 code1과 code2변수에 a가 있는 경우만 그룹을 모두 출력*/
data h4;
merge h2(in=a) h3(in=b);
by key;
if b;
run;
/*코딩 결과 그림 설명*/