본문 바로가기

SAS105

[SAS] sas proc import를 이용해 엑셀(EXCEL)파일 불러오기 여러가지 파일들을 SAS로 불러와서 핸들링하고 분석을 할 수가 있는데, 가장 대표적으로 많이 사용하는 것들이 텍스트 파일과 엑셀 파일이다. 그 중 엑셀 파일을 SAS로 불러오는 방법을 알아보자. 가장 간단한 방법은 [파일]-[데이터가져오기]를 통해서 엑셀 파일을 가져오는 방법인데 만약 이 방법이 안되는 경우에 직접 확장편집기에서 코딩을 통해 가져오는 방법을 알아보도록 하겠다. [파일]-[데이터가져오기]가 간혹 에러창이 뜨면서 안되는 경우에는 아래의 주소를 통해 해결 할 수가 있다. http://sasbigdata.com/28 확장편집기에서 코딩으로 엑셀(EXCEL)파일을 SAS로 가져오는 방법. proc import out=work.a /*생성할 dataset 이름*/ datafile='C:\Docume.. 2014. 2. 6.
[SAS] SAS에서 proc rank를 이용하여 순위구하기 SAS의 proc rank를 이용하여 값의 순위를 구하여 보자. 위의 사진을 보면 proc rank문을 이용하여 cost에 대한 순위를 구한 것이다. proc rank - 순위를 구하여보자 var cost - cost 변수에 대한 값들의 순위를 구해라. ranks cost_rank - 생성된 순위를 cost_rank라는 변수를 생성하여 입력해라. (위의 사진에서 rank for variable cost는 변수명이 아닌 자동으로 만들어진 라벨명이다. 실제 변수명은 지정한대로 cost_rank로 되어있음) 아래의 사진을 보면 option nolabel을 통해 라벨을 제거하면 실제 변수명을 볼 수 있다. 위의 사진과 함께 간단하게 순위를 매겨보았다. 기본적으로 작은값이 1부터 매겨진다. 아래의 사진을 통해 좀.. 2014. 2. 5.
[SAS] SAS rename (SAS에서 rename을 이용해 변수명,칼럼명 바꾸는 방법) SAS를 사용하고 데이터를 다루다보면 프로그램을 짤때 변수명이 너무 길거나 알아보지 못해 헷갈리는 경우가 많다. 이럴때 유용하게 쓰이는 rename을 이용하여 변수명(칼럼명)을 바꾸는 방법을 알아보자. rename을 입력한 뒤에 기존의 변수명을 입력한다.(라벨명이 아닌 실제 변수명을 입력하여야함) 그리고 = 기호를 삽입한 뒤에 새로 대체할 변수명을 입력하면 변수명을 바꿀수가 있다. 위의 사진의 예시는 sex라는 변수를 gender로 money라는 변수를 cost로 바꾸라는 말이다. www.sasbigdata.com 김진휘 2014. 2. 5.
[SAS] SAS options firstobs, obs (필요한 관측치만 가져오기) SAS에서 bigdata를 다루면서 필요하고 보고 싶은 관측치만 간단하게 짤라서 보고 싶은 경우가 있다. 그에 해당하는 옵션인 firstobs 와 obs 에 대해서 알아보자. 아래의 코딩 사진과 주석을 보면서 이해해보자. ex데이터는 약5백6십만 건의 데이터 인데 options obs=100을 입력함으로써 ex1데이터셋으로 ex데이터셋의 첫번째 관측치부터 100번째 관측치까지 뽑아내는 말이다. 그다음은 같은 방법인데 앞에 firstobs=5라는 것을 추가하여 첫번째가 아닌 5번째 관측치부터 obs=10 즉, 5번째 관측치부터 10번째 관측치 6개(5,6,7,8,9,10번째 관측치)를 가져오라는 말이다. 데이터셋 속성을 보면 알 수 있듯이 기존 ex데이터셋은 5백 6십만건 obs=100을 입력하여 ex1은.. 2014. 2. 5.
[SAS] SAS를 이용해 날짜 차이 값 구하기(mdy, intck 이용) SAS를 이용하여 날짜차이를 구해보자. 예를 들어 과거가 20140101이고 현재가 20140201이라고 가정한다면 이 날짜들의 차이를 어떻게 구할까? 그냥 빼기를 한다면 당연히 100이 나와서 계산이 되지 않는다. 이럴 경우 sas에서는 날짜를 mdy라는 함수를 이용해 수치로 변환할 수가 있다. 아래의 그림을 통해 자세히 살펴보자. 코딩에 주석까지 달아놨으니 차근차근 주석을 읽으면서 보면 이해가 쉽게 될 것이다. 편의상 필요없는 변수들을 마지막에 드랍했는데 실제로 sas에서 계산한 mdy와 mdy1의 값을 본다면 위와 같이 mdy 와 mdy1의 값들이 나온다. 이 두개의 변수의 차이를 가지고 sas는 날짜의 차이, 월의 차이, 년의 차이를 구하는 것이다. 보통 단순하게 계산 할때 현재날짜수치에서 과거 .. 2014. 2. 4.
[SAS] SAS 함수 (난수 함수) SAS의 난수 함수를 이용하여 확률변수를 생성 할 수 있다. 난수 함수 설명 NORMAL(seed) 표준 정규 분포를 따르는 확률변수의 변량을 생성 RANBIN(seed, n, p) 모수가 n, p인 이항 분포를 따르는 확률변수의 변량을 생성 RANCAU(seed) 위치모수(Location Parameter)의 값이 0, 척도모수(Scale Parameter)의 값이 1인 코쉬(Cauchy)분포 f(x)=1/(1+x^2)를 따르는 확률변수의 변량을 생성 RANEXP(seed) 모수의 값이 1인 지수 분포 f(x)=exp(-x), x >0으로부터 확률변수의 변량을 생성 RANGAM(seed, a) 형상모수(Shape Parameter)가 a인 감마 분포로부터 확률변수의 변량을 생성 RANNOR(seed) .. 2014. 2. 4.
[SAS] SAS 함수 (통계 및 확률분포 함수) SAS함수를 이용하여 통계 및 확률분포 함수값을 계산할 수 있다. 통계함수에서는 인수값이 결측치를 포함하면 그 값을 제외하고 함수값을 계산한다. 하지만 직접적으로 수식을 사용하는 경우에는 하나라도 결측치가 있으면 함수값을 결측치로 처리한다. 통계 및 확률분포 함수 설명 MEAN(argument, argument, …) 인수들의 산술평균을 계산 인수중 결측치가 있을시 그 인수는 빼고 계산 결측치를 갖더라도 함수값은 존재 SUM(argument, argument, …) 인수들의 합을 계산 POISSON(lamda, x) 모수가 lamda인 포아송 확률변수에 대해 분포함수값 F(x)를 계산 PROBBETA(x, a, b) 모수가 a, b인 베타 확률변수에 대해 분포함수값 F(x)를 계산 PROBBNML(p, .. 2014. 2. 4.
[SAS] SAS 함수 (삼각함수) SAS의 삼각함수를 이용하여 값을 계산 할 수 있다. argument의 단위는 라디안(Radian) 삼각함수 설명 SIN(argument) 사인 함수 값을 계산 COS(argument) 코사인 함수 값을 계산 TAN(argument) 탄젠트 함수 값을 계산 ARSIN(argument) ARCOS(argument) ATAN(argument) 각각의 역삼각 함수값을 계산 argument는 (-1,1)사이의 값을 가짐 SINH(argument) COSH(argument) TANH(argument) 쌍곡 삼각 함수 값을 계산 SAS 산술함수 참조 http://sasbigdata.com/52 SAS 통계 및 확률분포 함수 참조 http://sasbigdata.com/54 SAS 난수함수 참조 http://sasb.. 2014. 2. 4.
[SAS] SAS 함수 (산술함수) SAS의 산술함수를 이용하여 값을 계산할 수가 있다. 산술함수 설명 ABS(argument) 인수의 절대값을 계산 MAX(argument, argument, argument,…) 인수들 중 최대값을 계산 MIN(argument, argument, argument,…) 인수들 중 최소값을 계산 EXP(x) 인수만큼 e의 거듭제곱 계산. e는 자연로그의 밑. 값은 약 2.71828 GAMMA(α) 감마 함수를 계산 감마함수는 GAMMA(α)=(α-1)! LOG(argument) 자연로그값을 계산 LOG10(argument) 상용로그값을 계산 LOG2(argument) 밑이 2인 로그값을 계산 예를 들어 보자. a=abs(-9); a는 -9의 절대값인 9가 된다. b=min(1,3,5); b는 1, 3, 5 .. 2014. 2. 4.
[SAS] SAS를 이용해 조건에 맞는 데이터만 가져오는 방법 데이터에서 조건에 맞는 원하는 값만 가져오고 싶은 경우가 있다. 이런경우 일반적으로 가장 많이 이용하는 것이 if문을 이용한다. 아래 사진 참조 위의 사진처럼 a.ace2라는 데이터에서 변수 order가 1인 것들만 가져와라는 것인데 보통 if를 많이 이용한다. 하지만 if만 있는 것일까? 아니다. where문을 이용해서도 가져올 수 있다. if문의 부분에 where의 명령어를 삽입하여도 같은 결과가 나온다. 위 사진 참조 그렇다면 if와 where의 차이가 무엇일까? where문장은 자료를 data단계로 불러들이기 전 조건에 일치하는 즉, 만족하는 자료만 선택해 준다. 그러므로 전체자료를 읽어 들인 후에 조건에 맞는 것을 찾는 if 문장보다 더 효율적인 것이다. 이것이 자료를 가져올때 if와 where.. 2014. 2. 4.
[SAS] SAS에서 IF문을 이용해 데이터를 비교하기 SAS에서 데이터들을 비교해 볼때 보통 proc compare를 많이 사용한다. SAS 두개의 데이터셋을 proc compare를 이용해 비교하는 방법 > http://sasbigdata.com/7 SAS 하나의 데이터셋에서 두개의 변수를 proc compare를 이용해 비교하는 방법 > http://sasbigdata.com/48 이번에는 하나의 데이터셋에서 IF문을 이용해 두개의 변수들을 비교해보고 변수비교시 서로 다른 관측치를 가지는 데이터는 따라 뽑아내서 새로운 데이터셋으로 만드는 작업을 해보자. hwi라는 데이터셋에는 a와 a1 두가지 변수, 각각 10개의 관측치로 구성되어있다. 변수 a와 a1을 IF문을 통해 비교하여 다른 값을 가지는 것들만 따로 출력해본다. 코딩과정을 간단하게 설명하자면(사.. 2014. 1. 29.
[SAS] SAS에서 proc compare를 이용해 하나의 데이터셋에 있는 두개의 변수 비교하기 sas에서 proc compare문을 이용하여 하나의 데이터셋에 있는 두개의 변수가 같은지를 비교하는 방법을 알아보자. 두개의 데이터셋을 proc compare를 이용해 비교하는 방법 http://sasbigdata.com/7 하나의 데이터셋에 두개의 변수가 있는데 이것을 if문이 아닌 proc compare를 이용해 확인하는 방법이다. hwi라는 데이터셋에는 a와 a1이라는 변수가 있는데 중간중간 데이터값이 다른 것이 있다. 아래 사진 참조 간단하게 proc compare base=라이브러리명.데이터셋 (위의사진은 work라이브러리이므로 생략했음) allstats briefsummary를 적은뒤 var와 with 뒤에 기준이 되는 변수와 비교할 변수를 입력한후 실행하면 출력창과 같이 서로 다른 관측치들.. 2014. 1. 29.