1 / 49

SAS 기초

SAS 기초. 1. SAS 프로그램 형식 2. SAS 자료 입력 • 저장 3. 데이터세트 명령어 4. 기초적인 프로시저. 1. SAS 프로그램 형식 (1/3).  SAS 프로그램의 두 단계  DATA 단계 · 새로운 SAS data set 생성 · 기존 data 를 가공 · 처리하여 새로운 data set 생성  PROC(PROCEDURE) 단계 · SAS data set 자료를 분석하는 단계. 1. SAS 프로그램 형식 (2/3).

mayten
Télécharger la présentation

SAS 기초

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SAS 기초 1. SAS 프로그램 형식 2. SAS 자료 입력•저장 3. 데이터세트 명령어 4. 기초적인 프로시저

  2. 1. SAS 프로그램 형식(1/3) SAS 프로그램의 두 단계  DATA 단계 ·새로운 SAS data set 생성 ·기존 data를 가공 ·처리하여 새로운 data set 생성 PROC(PROCEDURE) 단계 · SAS data set 자료를 분석하는 단계

  3. 1. SAS 프로그램 형식(2/3)  SAS 프로그램 시 유의사항 ▪ 한 명령문은 중심어로 시작하고 반드시 세미콜론(;)으로 끝낸다. ▪ 대문자, 소문자 구별이 없다. ▪ 한 문장을 여러 줄에 사용 가능하다. ▪ 여러 문장을 한 줄에 작성 가능하다. 이 때 문장과 문장 사이는 반드시 세미콜론(;) 사용한다. 중심어(keyword) 인자(parameter) …. 선택사항(option) ;

  4. 1. SAS 프로그램 형식(3/3) 중심어  변수(인자)이름 ▪ 첫 문자는 알파벳(A∼Z)이나 밑줄(_)로 시작하고, 두 번째 문자는 알파벳, 숫자, 밑줄 모두 사용 가능. ▪ SAS 내부에서 정한 예약어를 쓸 수 없다. DATA, INPUT, INFILE, FILE, CARDS, PROC, RUN …

  5. 2. SAS 자료 입력•저장(1/12) 1 SAS library 만들기  메뉴 방식

  6. 2. SAS 자료 입력•저장(2/12) 프로그램 방식(라이브러리 생성) LIBNAME 라이브러리이름 ‘디렉토리경로명 ’; [예제 4.1] LIBNAME STAT 'c:\SAMPLE'; data STAT.a; input gender $ age score @@; cards; m 40 90 f 51 89 f 38 88 ; run;

  7. 2. SAS 자료 입력•저장(3/12) 2 EXCEL 파일 읽기와 저장 EXCEL 파일 읽기 - 메뉴 방식 파일 → 데이터 가져오기

  8. 2. SAS 자료 입력•저장(4/12)  EXCEL 파일로 저장 - 메뉴 방식 파일 → 데이터 내보내기

  9. 2. SAS 자료 입력•저장(5/12)  EXCEL 파일 읽기 –프로그램 방식 PROCIMPORTOUT = msyun.aa DATAFILE ="C:\sample\sample1.xls" DBMS = EXCEL2000 REPLACE; RANGE = “SHEET1$”; GETNAMES =YES ; RUN;

  10. 2. SAS 자료 입력•저장(6/12)  EXCEL 파일로 저장 –프로그램 방식 PROCEXPORTOUT = msyun.bb OUTFILE ="C:\sample\sample2.xls" DBMS = EXCEL2000 REPLACE; RUN;

  11. 2. SAS 자료 입력•저장(7/12) 3 텍스트 파일 읽기  텍스트 파일 읽기 - 메뉴 방식 파일 → 데이터 가져오기

  12. 2. SAS 자료 입력•저장(8/12) 텍스트 파일 읽기 - 프로그램 방식 DATA ms; INFILE ‘c:\msyun\sample2.dat’; INPUT a b c; RUN;

  13. 2. SAS 자료 입력•저장(9/12) 4 SAS에서 직접 자료 입력 4.1 DATA 문 (데이터세트의 형성) [예제4.2] DATA sample (KEEP=age); RUN; [예제4.3] DATA sample (DROP=age); RUN; DATA 선택사항 ;

  14. 2. SAS 자료 입력•저장(10/12) [예제4.4] DATA sample1; SET sample; KEEP age ; RUN; [예제4.5] DATA sample1; SET sample; DROP age ; RUN;

  15. 2. SAS 자료 입력•저장(11/12) 4.2 INPUT문 (자료의 입력 및 변수의 지정) 자유형식(free format) INPUT문  고정 입력 방식(fixed format) INPUT문 INPUT variables $ INPUT variables $ 시작열(col.) –끝열(col.)

  16. 2. SAS 자료 입력•저장(12/12) 4.3 CARDS문 (프로그램 내에서 자료 입력) [예제 4.6] DATA x; INPUT gender $ age score @@; CARDS; m 40 90 f 51 89 f 38 88 ; RUN;

  17. 3. 데이터세트를 이용하는 명령어 3.1 산술 할당문 새로운 변수 = SAS식 [예제 3.1] DATA A; SET SAMPLE; TOT1 = hgt + wgt ; TOT2 = TOT1 + food ; RUN; ▶ 산술 할당문의 위치 : INPUT문 뒤 or SET문 뒤

  18. 3. 데이터세트를 이용하는 명령어 연산자 ▪ 산술 연산자 • +(더하기) • -(빼기) • *(곱하기) • /(나누기) • **(지수) ▪ 비교 연산자 • = or EQ(같다) • ^= or NE(같지 않다) • > or GT(크다) • < or LT(작다) • >= or GE(크거나 같다) • <= or LE(작거나 같다)

  19. 3. 데이터세트를 이용하는 명령어 [예3.2] x1=log(x); y=b/a ; y=a*(c+3) ; [예3.3] DATA kim; INPUT a b; c=(a**2)+b;

  20. 3. 데이터세트를 이용하는 명령어  SAS에서 이용되는 함수 ▪ 산술함수 • ABS(절대값), SIGN(부호) • MAX(최대값), M IN(최소값) ▪ 절단함수 • INT(소수점 이하를 절단) • ROUND(지정된 자리에서 반올림)

  21. 3. 데이터세트를 이용하는 명령어 ▪ 표본통계량함수 • MAX, MIN • MEAN (평균) • SUM (합) • VAR (분산) • STD (표준편차) • STDERR (표준오차)

  22. 3. 데이터세트를 이용하는 명령어 ▪ 특수함수 • LAG (지체된 함수) • DIF (현재 값과 지체된 값의 차이) => DIFn(x)=x-LAGn(x)

  23. 3. 데이터세트를 이용하는 명령어 [예제 3.4] DATA A; SET B; average=MEAN (X1, X2, X3); or MEAN(OF X1-X3); RUN; [예제 3.5] x=ROUND(123.456,1); y=ROUND(123.456, 100); z=ROUND(123.456, 0.01); w=INT(123.456);

  24. 3. 데이터세트를 이용하는 명령어 [예제 3.6] DATA lag_test; INPUT x; y=LAG1(x); z=LAG2(x); datalines; 1 4 3 5 2 RUN; [결과]

  25. 3. 데이터세트를 이용하는 명령어 [예제 3.7] DATA diff_test; INPUT x; v=DIF1(x); w=DIF2(x); datalines; 1 4 3 5 2 RUN; [결과]

  26. 3. 데이터세트를 이용하는 명령어 3.2 IF문 (조건문) • IF SAS식 ; • IF SAS식 THEN 명령문; • IF SAS식 THEN 명령문; ELSE 명령문; • 4. IF SAS식 THEN 명령문 ; • ELSE IF SAS 식 THEN 명령문; • ELSE 명령문;

  27. 3. 데이터세트를 이용하는 명령어 [예3.8] IF gender=. THEN delete; [예3.9] IF ave <= 120 THEN strata=1; ELSE IF 120 < ave <= 125 THEN strata=2; ELSE strata=3;

  28. 3. 데이터세트를 이용하는 명령어 3.3 SET문  변수의 복사 [예제5.10] DATA new; SET old; RUN;

  29. 3. 데이터세트를 이용하는 명령어 변수의 부분 선택과 연산 [예제3.11] DATA new1; SET old; KEEP(DROP) age ; RUN; [예제 3.12] DATA new2; SET old; total=hgt+wgt; RUN;

  30. 3. 데이터세트를 이용하는 명령어 둘 이상의 SAS 자료를 변수를 기준으로 결합 [예제 3.13] <data new> name gender Sung M Park F Kim M Lee F Moon F Yoon M Oh M Jang F <data a1> name gender Sung M Park F Kim M Lee F <data a2> name gender Moon F Yoon M Oh M Jang F + ⇒ DATA new; SET a1 a2; RUN;

  31. 3. 데이터세트를 이용하는 명령어 3.4 MERGE문  둘 이상의 SAS 자료를 관측치를 기준으로 병합 [예제 3.14] <data a3> Color Purple Silver Pearl Red <data a1> name Sung Park Kim Lee <data a2> year make model 1993 Kia Sephia 2005 Hyundai Sonata 2001 Kia Optima

  32. 3. 데이터세트를 이용하는 명령어 <data new> name year make $ model $ Color $ Sung 1993 Kia Sephia Purple Park 2005 Hyundai Sonata Silver Kim 2001 Kia Optima Pearl Lee . . . Red DATA new; MERGE a1 a2 a3; RUN;

  33. 3. 데이터세트를 이용하는 명령어 [예제 3.15] <data a1> Name year make model Sung 1993 Kia Sephia Park 2005 Hyundai Sonata Kim 2001 Kia Optima <data a2> Name Color Park Purple Yoon Silver Kim Pearl Sung Red <data new> Name year make model Color Sung 1993 Kia Sephia Red Park 2005 Hyundai Sonata Purple Kim 2001 Kia Optima Pearl Yoon . . . Silver

  34. 3. 데이터세트를 이용하는 명령어 PROC SORT data=a1; BY name; RUN; PROC SORT data=a2; BY name; RUN; DATA new; MERGE a1 a2 ; RUN; ▶ 반드시 sort 후에 MERGE 할 것!

  35. 3. 데이터세트를 이용하는 명령어 3.5 RETAIN 문 방금 읽은 값을 계속 유지하게 하는 명령어로 실행문이 아니라 선언문으로 LAG1과 같은 역할을 한다. RETAIN 변수 ;

  36. 3. 데이터세트를 이용하는 명령어 동일한 관측이 겹쳐진 자료의 제거 [예제3.16] DATA phone; INPUT name $ area $ number @@; CARDS; Sung 02 4169679 Moon 02 7976155 Oh 0341 876322 Ketel 02 3122868 Moon 02 7976155 Sung 02 4169679 RUN; (계속)

  37. 3. 데이터세트를 이용하는 명령어 PROC SORT; by name; RUN; DATA phone1; SET phone; RETAIN oldname; IF oldname=name THEN delete; oldname=name; RUN;

  38. 4. 기초적인 프로시저 PROC PRINT PROC SORT PROC MEANS PROC SUMMARY PROC UNIVARIATE PROC FREQ PROC ttest

  39. 4. 기초적인 프로시저 4.1 PROC PRINT (자료의 출력) PROC PRINT [data=dsn] [선택사항] ; var 변수명; by 변수명; run;

  40. 4. 기초적인 프로시저 4.2 PROC SORT (자료의 정렬) PROC SORT [data=dsn] [out=dsn] [선택사항] ; by [descending] 변수명; run;

  41. 4. 기초적인 프로시저 4.3 PROC MEANS (평균과 관련된 통계량) PROC MEANS [data=dsn] [선택사항] ; var 변수명; class 변수명; output out=[dsn] keyword=[name]; RUN; PROC PRINT data=[dsn]; RUN;

  42. 4. 기초적인 프로시저 [예제4.1] PROC MEANS data=a n mean std sum; VAR hgt wgt ; OUTPUT out=b mean=mean1 mean2; RUN; PROC PRINT data=bb; RUN;

  43. 4. 기초적인 프로시저 [예제4.2] proc means data=testdata1; class gender; var height weight bmi; run; proc sort data=testdata1; by gender; run; PROC PRINT data=testdata1; RUN;

  44. 4. 기초적인 프로시저 4.4 PROC SUMMARY (자료의 요약) PROC SUMMARY [data=dsn] [선택사항] ; var 변수명; class 변수명; output out=[dsn] keyword=[name]; run;

  45. 4. 기초적인 프로시저 [예제4.2] PROC SUMMARY data=b ; CLASS gender ; VAR age score ; OUTPUT OUT=bb mean=mean1 mean2; RUN; PROC PRINT data=bb; RUN;

  46. 4. 기초적인 프로시저 4.5 PROC UNIVARIATE (분포와 통계량) PROC UNIVARIATE [data=dsn] [선택사항] ; var 변수명; output out=[dsn] keyword=[name]; run;

  47. 4. 기초적인 프로시저 4.6 PROC FREQ (도수분포표 및 분할표) PROC FREQ [data=dsn] [선택사항] ; tables 변수명*변수명; weight 변수명; run;

  48. 4. 기초적인 프로시저 [예제4.3] PROC FREQ data=b ; TABLES gender ; RUN; [예제4.4] PROC FREQ; TABLES gender*strata ; RUN; [예제4.5] PROC FREQ; TABLES x1-x30 ; RUN; [예제4.6] PROC FREQ; TABLES a*(b c) ; RUN;

  49. proc plot – scatter plot proc plot data=readin1; title ‘scatter plot of accept rate and grad rate’; plot accept_rate*graduate_rate; run;

More Related