본문 바로가기

sas sql9

[SAS] sas에서 그룹별로 여러변수에 특정값이 포함하는 key값만 출력[sql문사용] sas에서 그룹별로 여러변수에 특정값이 포함하는 key값만 출력하는 방법을 알아보자. 이전에도 비슷한 작업을 하였는데 이번에는 sql문을 이용해 아주 간단하게 처리하는 방법에 대해서 알아본다. 아래의 그림을 참조하자. 기존의 데이터에서 key그룹별로 code1과 code2에 특정값 a가 있는 경우의 키값들이 몇개인지 알아보는 방법이다. [코딩과정] data test; input key$ code1$ code2$@@; cards; 111 a b 777 g g 777 t t 111 b b 111 b a 222 a b 222 a b 333 b b 555 a a 333 b a 333 b b 666 a a 444 a b 444 b a 666 b a 666 a b ; run; proc sql; create tabl.. 2014. 5. 15.
[SAS] sas에서 full join(합집합)에서 inner join(교집합)부분 빼는 방법(합집합-교집합) sas를 이용해 merge를 하는데 조건이 두개의 데이터셋 합집합 개념에서 교집합 부분을 빼는 방법을 알아보자. 아래의 그림을 보면 이해가 쉬울 것이다. 한마디로 hwi1 데이터셋과 hwi2 데이터셋의 초록색 부분을 추출해 내는 것이다. 1. DATA STEP 먼저 기본적인 데이터스텝에서 해보자. 두개의 데이터셋에서 기준이 되는 변수를 각각 proc sort를 이용해 정렬을 한다. 그뒤 아래의 그림에 코딩과정 처럼 진행하면 추출이 가능한데 if문에 있는 =^은 같지 않다라는 뜻이다. =^ 자리에 ne를 써도 같은 의미이다. ne는 not equal의 줄임말이다. 2. proc sql 위와 같은 결과값을 추출하지만 sort과정이 필요없기때문에 처리 속도가 빠른 sql문을 이용해 추출해보자. 아래 그림을 참.. 2014. 4. 25.
[SAS] sas sql과 macro(매크로) 조합해서 반복적인 데이터 결합(join)하기 sas에서 처리시간을 줄이기 위해 sql문을 이용하여 데이터 결합을 한다. sort(정렬) 과정이 필요없으므로 그런데 만약 이와 같은 방법으로 여러개의 데이터들을 계속 반복적으로 해야된다면 sql문에 macro(매크로)문을 조합하여 사용할 수가 있다. sql문으로 left join을 하는데 같은 방법으로 여러번 반복 작업을 해야 하기 때문에 sql과 macro와 같이 사용하는 방법을 알아보자. [코딩과정] jin1, jin2, jin3이라는 데이터셋이 있고,hwi1, hwi2, hwi3이라는 데이터셋이 있다. 이 두개의 데이터셋을 각각 left join하여 jinhwi1부터 jinhwi3까지 데이터셋을 sql과 macro를 이용해 생성한다. create table 뒤에 새로 생성할 데이터셋명을 지정하는데.. 2014. 3. 19.
[SAS] sas proc sql 그룹별 합계구하기 /*sas proc sql로 그룹별 합계구하기*/ data a; input key cost; cards; 111 1 222 2 333 3 222 2 111 1 111 1 333 3 444 4 ; run; /*key변수를 그룹으로 cost의 합계를 구하는 sql문*/ proc sql; create table a1 as select key, sum(cost) as sum from a group by key; quit; run; www.sasbigdata.com 김진휘 2014. 3. 14.
[SAS] sas proc sql full join(합집합) 방법 sas에서 proc sql문을 이용해서 데이터를 결합하는 방법들을 알아보자. sas proc sql full join(합집합 결합) 방법 - 두개의 데이터셋에 조인키의 같은 값이 있는 경우 합집합으로 매치시켜 합치기 [sas proc sql full join 문장구조 설명] [sas proc sql full join 예제 설명] [쉽게 코딩을 알아보자] proc sql; create table 결과데이터셋 as select 임의의명.*(모든변수사용), 임의의명2.*(모든변수사용) from 합칠데이터1 as 임의의명 full join 합칠데이터2 as 임의의명2 on 임의의명.합칠데이터1의 조인키변수=임의의명2.합칠데이터2의 조인키변수; run; www.sasbigdata.com 김진휘 2014. 3. 14.
[SAS] sas proc sql left join(왼쪽 테이블 기준 결합) 방법 sas에서 proc sql문을 이용해서 데이터를 결합하는 방법들을 알아보자. sas proc sql left join(왼쪽 테이블 기준 결합) 방법 - 두개의 데이터셋에 조인키의 같은 값이 있는 경우 왼쪽 테이블을 기준으로 매치시켜 합치기 [sas proc sql left join 문장구조 설명] [sas proc sql left join 예제 설명] [쉽게 코딩을 알아보자] proc sql; create table 결과데이터셋 as select 임의의명.*(모든변수사용), 임의의명2.*(모든변수사용) from 합칠데이터1 as 임의의명 left join 합칠데이터2 as 임의의명2 on 임의의명.합칠데이터1의 조인키변수=임의의명2.합칠데이터2의 조인키변수; run; www.sasbigdata.com 김진휘 2014. 3. 14.
[SAS] sas proc sql inner join(교집합) 방법 sas에서 proc sql문을 이용해서 데이터를 결합하는 방법들을 알아보자. sas proc sql inner join(교집합) 방법 - 두개의 데이터셋에 조인키의 같은 값만 있는 경우 합치기 [sas proc sql 교집합 inner join 문장구조 설명] [sas proc sql 교집합 inner join 예제 설명] [쉽게 코딩을 알아보자] proc sql; create table 결과데이터셋 as select 임의의명.*(모든변수사용), 임의의명2.*(모든변수사용) from 합칠데이터1 as 임의의명, 합칠데이터2 as 임의의명2 where 임의의명.합칠데이터1의 조인키변수=임의의명2.합칠데이터2의 조인키변수; run; sasbigdata.com 김진휘 2014. 3. 14.
[SAS] sas proc sql 문장에 대해서 알아보자(문장구조, 조건식) sas proc sql 문장에 대해서 알아보자(문장구조, 조건식) proc sql에서 조건식에 대해서 자세히 알아보자. [문장구조] proc sql; create table 결과데이터 셋 명 as select 그룹변수명, sum (case when 조건식 ~~일때 then 조건식 ~~해라 else 아니면 조건식 해라 end) as 예명 from 입력 데이터셋 명 where 조건식 group by 그룹변수명 having 결과 데이터에 대한 조건식; quit; run; [예시] [코딩 설명] sp3라는 데이터셋을 생성하여 month변수를 생성한다. sum함수를 이용하여 sum이라는 변수를 만들어 값을 구하는데 조건은 month가 01일 경우 cost에 10을 더하고 아니면 그냥 cost값으로 계산한다. sp.. 2014. 2. 28.
[SAS] sas proc sql 문장에 대해서 알아보자(문장구조, 기술통계량) sas에서 proc sql 문장을 이용해서 기술통계량을 구하는 방법을 알아보고, 문장구조에 대해서도 알아보자. [문장구조] proc sql; create table 결과 데이터셋명 as select 그룹변수명, sum(변수명) as sum, count(변수명) as n, avg(변수명) as mean, max(변수명) as max, min(변수명) as min, std(변수명) as std from 입력 데이터셋명 where 입력 데이터에 대한 조건식 group by 그룹변수명 having 결과 데이터 조건식; quit; run; [예제] [예제 및 코딩 설명] month, id, cost라는 변수 세개를 가진 sp1이라는 데이터셋이 있다. create table sp2 → sp2라는 결과 데이터 셋을 .. 2014. 2. 28.