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;
/*코딩 결과 그림 설명*/
'SAS' 카테고리의 다른 글
[SAS] sas에서 그룹별로 여러변수에 특정값이 포함하는 key값만 출력[sql문사용] (0) | 2014.05.15 |
---|---|
[SAS] sas에서 그룹별로 여러변수에 특정값이 공통으로 존재하는 경우 그룹수 추출방법 (0) | 2014.05.14 |
[SAS] sas에서 그룹별로 순서대로 번호 매기는 방법 (2) | 2014.05.13 |
[SAS] sas에서 두개의 데이터셋 left join후 우측데이터 부분 모두 제거방법 (0) | 2014.05.12 |
[SAS] sas에서 그룹별로 특정값이 있는 경우 체크하는 방법 (0) | 2014.05.09 |
댓글