본문 바로가기

sas다운3

[SAS] sas에서 그룹별로 순서대로 번호 매기는 방법 sas에서 그룹별(중복값들에 대해)로 각 순서를 매기는 방법에 대하여 알아보자. 예를 들어 설명하면 1이라는 값이 3개가 있으면 새로운 변수를 생성해 1이라는 값 옆에 1부터 3까지 생성하는 것이다. [코딩] /*예제데이터 a 생성*/ data a; input jin@@; cards; 1 1 1 2 2 2 2 2 3 3 ; run; /*예제데이터는 데이터가 순서대로이지만 원래는 proc sort를 그룹이 되는 변수별로 실시해줘야됨*/ proc sort data=a; by jin; run; /*새로운 변수를 생성, 그룹별로 1부터 누적값을 만들어줌*/ data b; set a; by jin; if first.jin=1 then n_jin=0; n_jin+1; run; [결과] 위와 같이 코딩을 실행하면 아.. 2014. 5. 13.
[SAS] sas에서 full join 하기 (합집합 개념) sas에서 두개의 데이터셋을 full join하는 방법에 대해서 알아보자.(합집합 개념) 합집합에서는 좌 우측 데이터들의 일치 유무를 따지지 않고 모두 붙이는 개념인데 합치는 과정중 공백이 있다면 null값으로 처리한다. 위의 그림처럼 hwi1이라는 데이터 셋과 hwi2 데이터 셋의 합집합개념(초록색 부분)이라고 보면 된다. 1. data step 위의 사진은 data step을 사용하는 방법이다. proc sort과정을 하여 단순하게 merge시키면 위와 같이 원하는 합집합 개념의 결과가 도출된다. 2. proc sql(full join 사용) proc sql에서 full join명령어를 사용하는 방법이다. 자세히 보면 key변수의 555값이 없는 것을 볼 수 있다. 이것은 full join이 될때 기.. 2014. 4. 16.
[SAS] sas에서 inner join 하기 (교집합 개념) SAS에서 두개의 데이터셋을 합치는데 공통된 부분을 가로결합하는 방법을 알아보자. 쉽게 말하면 아래의 그림과 같이 초록색 부분인 교집합 부분을 출력하는 것이다. 위의 사진은 예제 데이터인 hwi1데이터셋과 hwi2데이터셋의 교집합 부분(초록색)을 출력하겠다는 그림이다. 1. data step 빅데이터에서는 proc sort과정의 처리속도 문제로 sql을 많이 사용하지만 일반적으로 많이 사용하는 데이터스텝에서 inner join(교집합)을 하는 과정을 알아보자. key값이 같은 데이터를 출력한다. join할 2개의 데이터셋의 기준이 되는 변수 key변수를 먼저 proc sort로 정렬을 한뒤 merge(가로병합)를 한다. 조건은 key기준으로 in의 a와 b가 같은 경우 교집한인 경우를 설정하면 위와 같이.. 2014. 4. 16.