IT/SQL 32

[SAS] proc transpose

▶ proc transpose transpose문은 변수의 값(세로값)을 여러개의 변수(가로)로 사용하고 싶을때 사용되어 진다. 먼저 아래와 같이 데이터를 생성하자. data a1; input a b c @@;cards; 1 2 3 1 5 6 7 8 9 11 22 33 ; run; 아래 tanspose 결과를 a1에서 보면 4개의 개체를 가지고 있는 것을 볼 수 있는데 transpose를 통해 변수 b의 값이 4개의 변수값으로 변한 것을 볼 수 있다. 아래 prefix는 생성되는 변수명을 지정해주면 뒷 부분에 자동으로 변수 수에 맞추어 1,2,3,4...가 붙어서 새로운 변수가 생성된 것을 볼 수 있다. var는 변환하고자 하는 변수명을 쓴다. proc transpose data= a1 out=a2 pr..

IT/SQL 2017.03.23

[SAS] proc sort

▶ proc sort 데이터셋을 지정한 변수로 정렬하는데 이용한다. sas의 data step문에서 자주 사용하는 명령어 중 하나이다. proc sort 는 항상 by문과 함께 사용된다. 숫자는 missing, 음수, 영, 양수의 순으로 정렬하며 문자는 아래의 순서로 정렬한다. 빈칸 ! # $ % & * + - . / 0 1 2 3 4 5 6 7 8 9 : ; ? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_ abcdefghijklmnopqrstuvwxyz{/}~ 다음 데이터 셋에 proc sort를 해보자. data a; input a b @@; cards; 2 1 3 1 4 1 5 1 2 2 2 3 1 1 4 2 5 2 6 1 ; run; proc sort data= a out=b; by..

IT/SQL 2017.03.23

[SAS] proc compare

▶ proc compare 서로 비슷한 두개의 데이터셋에 대해 차이를 비교해 볼 수 있다. 두 데이터가 같은지 다른지에 대해 나타내준다. 설명보다는 예제를 통한 이해가 쉬울 것 같아서 예를 들어보자. data a1; input x @@; cards; 1 2 3 4 5 ; run; data a2; input x0 @@; cards; 1 6 3 4 7 10 ; run; a1과 a2 관측치의 수가 동일한 경우 : 다른 변수만 찾아서 출력, 두 값을 비교해준다. a1의 관측치가 a2보다 많은 경우 : 다른 관측치의 수를 보여주고 a1과 a2의 관측치의 수가 동일한 곳까지만 비교 a1의 관측치가 a2보다 적은 경우 : 위의 경우와 동일. * 관측치의 수가 다른 경우는 결과값에 어느 테이블에만 있는 관측치인지 나타..

IT/SQL 2017.03.23

[SAS] Retain 문

▶ retain sas는 변수간의 계산은 강력하나 data step의 가장 약한 기능 중 하나라고 볼 수 있는게 변수내 계산입니다. retain 문은 이런 sas의 단점을 보완하는 명령문이라고 생각하시면 됩니다. data a1; input x @@; cards; 1 2 3 4 5 ; data a1; set a1; retain sumx 0; sumx=sumx+x; run; 코딩을 보시면 retain sumx 0 은 sumx에 초기값을 0으로 지정해주고 sumx에 x값을 누적하는 값입니다. 그리고 이건 retain문의 정식적인 활용은 아니지만 변수가 여러개 일때 뒤에 있는 변수 중 앞쪽에 보이게끔 하기 위해서도 사용가능 합니다. 예를 들어 보여드리면 다음과 같은 데이터 셋이 있다고 합시다. data a; i..

IT/SQL 2017.03.23

[SAS] Format 문 / Informat 문

▶ format format문은 변수값의 표시형태를 지정한 형태로 나타낸다. data a1; input sex $ mar age edu his work pay money hob; cards; m 1 18 2 1 4 5 82 1 f 1 20 3 1 4 5 43 2 f 1 22 3 2 4 4 45 3 f 1 24 3 3 1 2 49 5 ; run; 다음과 같이 $vv와 vvv에 지정하고자 하는 데이터 값의 형태를 지정해준다. (a1데이터 생성 전 미리 생성해두어도 관계없다. format으로 변수형태를 지정해두면 나중에도 계속하여 사용할 수 있다.) proc format; value $vv 'f'='여자' 'm'='남자'; value vvv low-44.999 = '저임금' 45-48.999='정상임금' 49..

IT/SQL 2017.03.23

[SAS] do ~ end, stop 명령문

▶ do ~ end do문은 end와 같이 사용한다. do문은 사용하는 범위가 다양하므로 익혀두면 매우 유용하게 쓰인다. 반복 data ex1; do i= 1 to 10 by 0.5; output; end; run; 1~10까지 0.5 단위로 컬럼을 생성한다. output은 생성한 내용을 매 단위마다 저장하는 문장이다. 간단한 문장이지만 일정한 간격으로 데이터를 생성할 때 매우 유용하게 쓰인다. 위의 내용을 응용하면 아래와 같은 결과를 얻을 수 있다. 먼저 do문의 0~8까지 2단위로 데이터가 생성되며 이후에는 연속되지 않는 12, 14, 17의 값이 생성된다. data ex2 ; do i=0 to 8 by 2 , 12, 14, 17; output; end; run; do문은 do until, do wh..

IT/SQL 2017.03.23

[SAS]Update와 merge 비교

▶ update, merge 데이터 결합을 위해서 보통은 merge나 set을 이용하는데요. 여기서는 update와 merge의 차이점을 보기로 하죠~~ data a1; input code1 x y @@; cards; 11 1 2 21 4 3 51 2 5 41 3 7 ; run; data a2; input code1 y z @@; cards; 11 1 111 21 . 222 31 3 333 41 4 777 71 7 777 ; run; 두 데이터를 결합하기 위해서는 결합하고자하는 key로 정렬한다.(a2의 경우 정렬되어 있으므로 a1만 정렬) proc sort data=a1; by code1; run; 두 데이터의 결합 왼쪽 데이터(a1a2)는 update로 결합한 결과이며 오른쪽 데이터(a1a2_1)는 ..

IT/SQL 2017.03.23

1. SAS EG 시작하기 - 데이터를 SAS 데이터셋으로 가져오기

데이터 분석은 어느덧 기업 경영의 필수요소로 자리 잡고 있다. 경험과 직관에 의지했던 비즈니스 의사결정이 데이터 분석 기반으로 변화하면서 분석에 대한 요구는 많아지고 있다. 하지만 실제 분석환경은 녹록치 않고, 여전히 분석은 어렵고 복잡하게만 느껴진다. 실제로 기업 내부 데이터들은 다양한 형태로 존재하고, 분석가도 부족하며, 기업 환경에 적합한 분석도구조차 부족한 현실이다. 이번 강좌에서는 ‘SAS 엔터프라이즈 가이드(SAS Enterprise Guide)’를 이용해 엑셀과 텍스트 등 다양한 형태의 내부 데이터를 쉽고 빠르게 가져와 SAS 데이터셋에서 데이터를 핸들링하고, 통계분석 및 리포트 작업을 위저드 기반으로 간편하게 분석하는 방법을 보여주고자 한다. 그리고 동일한 데이터를 시각화 도구인 ‘SAS ..

IT/SQL 2016.12.20
반응형