sas에서 그룹별로 여러 변수에 특정값이 공통으로 존재하는 경우 그룹 수를 추출하는 방법을 알아보자.
예를 들어 보면 아래의 그림처럼 code1과 code2에 a라는 특정값이 그룹별로 모두 존재하는 경우에 해당하는
그룹이 몇개인지 알아보는 방법이다.
위의 그림은 예를 들어 설명한 것이고,
실제 사용한 예제데이터는 다른 데이터이지만 형식은 같다.
[코딩과정]
/*예제데이터 생성*/
data h;
input key$ code1$ code2$;
cards;
111 a b
111 b b
111 b a
111 a a
222 a b
222 a b
333 b b
222 b b
333 b b
333 b a
333 b b
444 a b
444 b a
555 a b
555 a b
666 a a
;
run;
/*code1이 a인것만 추출하여 result 데이터셋 생성*/
proc sql;
create table result as
select *
from h
where code1='a';
quit;
/*code2가 a인것만 추출하여 result1 데이터셋 생성*/
proc sql;
create table result1 as
select *
from h
where code2='a';
quit;
/*result와 result1의 key값이 같은 경우만 출력해 join 데이터셋 생성*/
proc sql;
create table join as
select a.key
from result a inner join result1 b
on a.key=b.key;
quit;
/*join 데이터셋 key값 중복제거*/
proc sort data=join nodupkey; by key; run;
[과정부터 결과까지의 사진]
내용은 간단하다.
1. 원데이터에서 code1이 a인 것만 출력 저장
2. 원데이터에서 code2가 a인 것만 출력 저장
3. 위의 두개의 데이터셋에 key값이 공통인것만 출력 저장
4. 중복된 key값 제거
5. 결과 : 그룹(key)별로 code1과 code2에 a가 공통으로 존재하는 key를 출력해줌.
'SAS' 카테고리의 다른 글
[SAS] sas에서 코딩방법에 따른 처리 속도의 차이(if문의 위치) (0) | 2014.05.16 |
---|---|
[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 |
댓글