본문 바로가기

SAS9.130

[SAS] sas proc sql과 proc sort 두 방법으로 merge할 경우 처리 속도 비교 sas를 이용하여 필요한 데이터를 구축하기 위해서 데이터 병합 작업을 많이 하게 된다. 쉽게 말해 sas로 데이터를 붙이고 짜르고 하는 작업이 빈번하게 발생한다는 말이다. 데이터 가로 병합(merge)을 흔하게 사용하는데 데이터가 작을 경우에는 어떤 병합 방법을 사용해도 처리시간이 거의 차이가 없지만, 데이터가 크면 클수록 시간이 오래 걸리기 때문에 처리시간을 단축시키는 방법을 찾게 된다. sas에서 full join merge를 한다는 기준으로 두가지 방법(proc sql문, proc sort문)을 보고 어떤 것이 처리시간이 빠른지를 알아보도록 하자. 당연히 같은 결과를 출력하는데 여러가지 방법이 있다면 빠르게 처리 할수 있는 방법을 아는 것이 실무에 많은 도움이 될 것이다. 위의 사진에서 두가지 방법.. 2014. 3. 12.
[SAS] sas infile에 대해서 알아보기(옵션 등) sas에서 외부 데이터를 가지고 올때 infile 문을 사용하는데 거의 공식처럼 따라다니는 옵션들도 많고, 그것들이 무엇을 의미하는지에 대해 자세히 모르고 사용하는 사람들이 많다. sas infile의 각종 옵션들과 세부사항에 대해서 알아보도록 하자. 아래의 사진은 예제로 코딩을 한 것이다. %let _EFIERR_ =0; 시스템 변수의 초기화 오류가 발생했을시 자동으로 스탑시키는 명령 delimiter='구분자' 또는 dlm='구분자' 원시데이터에서 변수 별로 구분을 하게 하는 것을 설정하는 곳이다. 일반적으로 가장 많이 사용하는 것이 탭(tab)또는 comma(,) 이다. tab문자가 구분자일 경우에는 expandtabs 콤마가 구분자일 경우 dlm=',' dlm은 delimiter의 약자로 둘다 같.. 2014. 3. 5.
[SAS] sas에서 텍스트 파일 불러오기(infile문 이용, 에러 해결하기) 빅데이터(bigdata)를 다룰때 원시데이터가 엑셀(excel) 파일인 경우가 거의 없다. 이유는 엑셀 파일의 행(관측치)의 개수가 한계가 있기 때문이다. 엑셀 97-2003 통합문서인 경우 행은 총 65,536, 엑셀2007인 경우 행은 총 1,048,576 그렇기 때문에 텍스트 파일을 많이 가져오는 경우가 대부분이다. sas를 이용해서 텍스트 파일을 가져오는 방법을 알아보자. 일반적으로 간단하게 가져오는 경우가 [파일]-[데이터 가져오기] 를 통하여 또는 proc import를 이용하여 텍스트 파일을 가져오는데 정상적으로 가져와진다면 문제가 없다. 하지만 많은 경우가 불러오는 도중 다양한 에러들이 생기는 경우가 많다. 에러를 해결하는 몇몇의 경우에 대해서 알아보자. 1. [파일]-[데이터가져오기]를 .. 2014. 3. 5.
[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.
[SAS] SAS PROC EXPORT를 이용하여 SAS파일을 텍스트파일로 내보내기 대부분 대용량 빅데이터를 다룰시에 엑셀로 내보내는 것보다 텍스트파일 형식으로 내보내는 것을 선호한다. SAS파일을 텍스트 파일 형식으로 내보내는 방법을 알아보자. 클릭클릭을 통해 간단하게 내보내는 방법이 있으나 여러개의 파일을 내보낼 경우에는 PROC EXPORT 구문을 이용하는 것이 훨씬 효율적이다. [코딩과정] PROC EXPORT DATA= work.ace OUTFILE= "C:\Documents and Settings\pc\바탕 화면\ace.txt" DBMS=TAB REPLACE; RUN; [설명] 임시라이브러리인 work방에 있는 ace라는 sas파일을 ace라는 텍스트 파일로 내보내는 경우이다. (work라이브러리는 임시 라이브러리이기 때문에 생략이 가능하나 설명을 위해 그냥 넣었다.) 전체적.. 2014. 2. 28.
[SAS] sas에서 기하평균과 신뢰구간 간단하게 구하는 방법 sas를 이용해서 값들의 기하평균과 신뢰구간을 간단하게 구하는 방법을 알아보자. 참고로 이 옵션은 sas9.1은 되지 않으며 9.2버전 이상만 가능하다. SAS EG도 가능하다. 위의 사진의 코딩처럼 proc ttest에서 옵션부분에 dist=lognormal 이라는 옵션을 사용하면 출력창에 geomean(기하평균값)과 그에 따른 95% 신뢰구간을 출력해 준다. sas 9.1버전에서는 빅데이터의 기하평균을 구하기 위해 로그를 씌우고, proc means해서 다시 exp를 씌우고 하는 작업을 해야는데 (물론 간단한 데이터의 경우에는 geomean() 함수로 해결이 가능함) 9.2 버전 이상부터는 dist=lognormal 옵션이 사용가능하기 때문에 간단한 코딩으로 기하평균과 신뢰구간을 구할 수가 있다. w.. 2014. 2. 27.
[SAS] SAS에서 EXCEL 파일, 데이터 가져오기 오류 해결 방법 SAS에서 파일 - 데이터 가져오기 - EXCEL 자료를 불러 올때 오류가 생기는 경우가 있다. 이 경우 대부분 원인을 찾지 못하고 텍스트로 변환시키던지 다른 방법을 통해 가져온다. 클릭을 통해 쉽게 가져오는 방법이 있는데 원인을 찾아 고칠 생각은 하지 않고 다른 방법으로 가져오는데 오늘 그 원인을 해결하는 방법을 스크린샷과 함께 아주 쉽게 파헤쳐 보자. SAS9.1버젼을 기준으로 작성하였으며, 쉽게 설명하기 위해 많은 사진 첨부로 인해 스크롤 압박이 있습니다. 1. 아래 그림처럼 이런 문제가 생길 것이다. 원인 해결을 통해 이 오류를 잡아보자. 2. SAS 설치파일인 setup아이콘을 더블클릭한다. 3. 설치 언어 선택창이 뜰 것이다. 우리는 한국인이니깐 한국어를 선택합니다. 각자 원하는 언어 선택후 .. 2013. 11. 25.
[BIGDATA] 빅데이터 전문가(Bigdata Specialist) 데이터 사이언티스트(Data Scientist) 데이터(Data)의 쓰나미 속에서 기업에 돈이 되는 정보를 추출해내는 '데이터 사이언티스트(Data Scientist)'가 미국을 중심으로 전세계 인기 직업으로 뜨고 있다. 인터넷 보급과 소셜 네트워크 서비스(SNS)의 확산 등으로 기업 및 정부 등이 수집하는 데이터 양이 폭증하고 있지만 이를 분석할 전문적인 인력은 부족하다. '빅데이터(bigdata) 전문가는 귀하신 몸' 위와 같은 제목의 기사들이 터져 나오고 있으며, 국내 빅데이터 시장에서 빅데이터 전문가를 찾기가 상당히 어렵다는 것이다. 빅데이터 전문가의 수요와 필요성 * 컨설팅 업체인 맥킨지 글로벌 인스티튜트(McKinsey Global Institute) - 2020년까지 미국에서만 필요한 데이터 사이언티스트(Data Scientist)등 전문.. 2013. 11. 20.
[SAS] SAS 국제 공인 자격증 취득에 대해서 SAS에도 역시나 자격증이란게 존재합니다. SAS 국제자격증의 종류에 대해서 사진으로 간단하게 알아봅시다. [ SAS 국제자격증의 종류 ] SAS 국제자격증 종류는 여러 종류가 있는데 일반적으로 가장 먼저 취득하는 자격증이 SAS Foundation의 SCBP - SAS Certified Base Programmer for SAS 9 그냥 편하게 sas base자격이라고 하는데 통계학 전공자나 데이터관련 전공자들은 많이 도전하는 자격이다. 나또한 SCBP는 대학시절 국제자격증의 로망으로 인해 취득하였다. 딱히 큰 메리트는 없는 듯 싶다... 그다음 연계해서 도전하는 것이 SCAP - SAS Certified Advanced Programmer for SAS 9 이것 또한 그냥 sas advanced라고 .. 2013. 11. 19.
[SAS] SAS를 이용해 데이터 중복제거하기 proc sql 사용 SAS데이터를 핸들링 하면서 가장 많이 하는 작업중 하나가 중복제거 작업입니다. 보통 가장 일반적으로 사용하는 것이 proc sort에서 nodupkey를 옵션으로 걸어서 사용을 많이합니다. 그렇다면 중복제거가 proc sort의 nodupkey만 있는 것이냐? 아니다! proc sql의 distinct문이 있다. 그런데 왜 두개가 따로 있는것인가? 뭐 따지고 보자면 중간의 정렬과정인 sorting작업이 sql에서는 해줄 필요가 없기때문에 sql문에 아마도 대용량 데이터에서는 더 빠른 처리 결과를 낼 것이다. 그럼 proc sql의 distinct를 이용하여 데이터의 중복제거를 하는 방법을 알아보자. 아래와 같이 중복이 있는 데이터 셋을 생성하였다. 위의 5개변수와 10개의 관측치를 가진 데이터를 이용하.. 2013. 11. 18.
[SAS] SAS를 이용해 두개의 데이터셋의 변수들이 일치하는 기준으로 merge해서 붙이기 SAS를 이용해 두개의 데이터셋의 변수들이 일치하는 기준으로 merge해서 붙이기 이게 무슨 말인가? 두개의 데이터셋이 있는데 변수들의 값이 일치하는 것끼리 붙여버리는 것입니다. 말로 설명하는데는 한계가 있으니 사진을 참고 하시기 바랍니다. ex1과 ex2라는 두개의 데이터 셋이 있습니다. 같은 변수도 있고 다른 변수들도 있는데~ key와 name이라는 변수들이 일치하는 기준으로 두개의 데이터셋을 하나로 합치는 것입니다. ex3을 보시면 제대로 붙었다는 것을 확인 할 수가 있습니다. sort와 merge는 자주 사용하는 것이니 잘 알아두시면 유용하게 쓰일거라 생각됩니다. 2013. 11. 15.