Download presentation
Presentation is loading. Please wait.
1
SAS 기초 1. SAS 프로그램 형식 2. SAS 자료 입력 저장 3. 데이터세트 명령어 4. 기초적인 프로시저
2
SAS 프로그램의 두 단계 DATA 단계 DATA 단계 · 새로운 SAS data set 생성 · 새로운 SAS data set 생성 · 기존 data 를 가공 · 처리하여 새로운 data set 생성 · 기존 data 를 가공 · 처리하여 새로운 data set 생성 PROC(PROCEDURE) 단계 PROC(PROCEDURE) 단계 · SAS data set 자료를 분석하는 단계 · SAS data set 자료를 분석하는 단계 1. SAS 프로그램 형식 (1/3)
3
SAS 프로그램 시 유의사항 ▪ 한 명령문은 중심어로 시작하고 반드시 세미콜론 (;) 으로 끝낸다. ▪ 한 명령문은 중심어로 시작하고 반드시 세미콜론 (;) 으로 끝낸다. ▪ 대문자, 소문자 구별이 없다. ▪ 대문자, 소문자 구별이 없다. ▪ 한 문장을 여러 줄에 사용 가능하다. ▪ 한 문장을 여러 줄에 사용 가능하다. ▪ 여러 문장을 한 줄에 작성 가능하다. 이 때 문장과 문 장 사이는 반드시 세미콜론 (;) 사용한다. ▪ 여러 문장을 한 줄에 작성 가능하다. 이 때 문장과 문 장 사이는 반드시 세미콜론 (;) 사용한다. 1. SAS 프로그램 형식 (2/3) 중심어 (keyword) 인자 (parameter) …. 선택사항 (option) ;
4
중심어 변수 ( 인자 ) 이름 ▪ 첫 문자는 알파벳 (A ∼ Z) 이나 밑줄 (_) 로 시작하고, 두 번째 문자는 알파벳, 숫자, 밑줄 모두 사용 가능. 두 번째 문자는 알파벳, 숫자, 밑줄 모두 사용 가능. ▪ SAS 내부에서 정한 예약어를 쓸 수 없다. 1. SAS 프로그램 형식 (3/3) DATA, INPUT, INFILE, FILE, CARDS, PROC, RUN …
5
1 SAS library 만들기 메뉴 방식 메뉴 방식 2. SAS 자료 입력 저장 (1/12)
6
프로그램 방식 ( 라이브러리 생성 ) 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; 2. SAS 자료 입력 저장 (2/12)
7
2 EXCEL 파일 읽기와 저장 EXCEL 파일 읽기 - 메뉴 방식 EXCEL 파일 읽기 - 메뉴 방식 파일 → 데이터 가져오기 2. SAS 자료 입력 저장 (3/12)
8
EXCEL 파일로 저장 - 메뉴 방식 EXCEL 파일로 저장 - 메뉴 방식 파일 → 데이터 내보내기 2. SAS 자료 입력 저장 (4/12)
9
EXCEL 파일 읽기 – 프로그램 방식 EXCEL 파일 읽기 – 프로그램 방식 PROC IMPORT OUT = msyun.aa DATAFILE = "C:\sample\sample1.xls" DBMS = EXCEL2000 REPLACE; RANGE = “SHEET1$”; GETNAMES = YES ; RUN; 2. SAS 자료 입력 저장 (5/12)
10
EXCEL 파일로 저장 – 프로그램 방식 EXCEL 파일로 저장 – 프로그램 방식 PROC EXPORT OUT = msyun.bb OUTFILE = "C:\sample\sample2.xls" DBMS = EXCEL2000 REPLACE; RUN; 2. SAS 자료 입력 저장 (6/12)
11
3 텍스트 파일 읽기 텍스트 파일 읽기 - 메뉴 방식 텍스트 파일 읽기 - 메뉴 방식 파일 → 데이터 가져오기 2. SAS 자료 입력 저장 (7/12)
12
텍스트 파일 읽기 - 프로그램 방식 텍스트 파일 읽기 - 프로그램 방식 DATA ms; INFILE ‘c:\msyun\sample2.dat’ ; INPUT a b c; RUN; 2. SAS 자료 입력 저장 (8/12)
13
4 SAS 에서 직접 자료 입력 4.1 DATA 문 ( 데이터세트의 형성 ) [ 예제 4.2] DATA sample (KEEP=age); [ 예제 4.2] DATA sample (KEEP=age); RUN; RUN; [ 예제 4.3] DATA sample (DROP=age); [ 예제 4.3] DATA sample (DROP=age); RUN; RUN; DATA 선택사항 ; 2. SAS 자료 입력 저장 (9/12)
14
[ 예제 4.4] DATA sample1; SET sample; KEEP age ; RUN; [ 예제 4.5] DATA sample1; SET sample; DROP age ; RUN; 2. SAS 자료 입력 저장 (10/12)
15
4.2 INPUT 문 ( 자료의 입력 및 변수의 지정 ) 자유형식 (free format) INPUT 문 고정 입력 방식 (fixed format) INPUT 문 INPUT variables $ INPUT variables $ 시작열 (col.) – 끝열 (col.) 2. SAS 자료 입력 저장 (11/12)
16
4.3 CARDS 문 ( 프로그램 내에서 자료 입력 ) [ 예제 4.6] DATA x; INPUT gender $ age score @@; CARDS; m 40 90 f 51 89 f 38 88 ; RUN; 2. SAS 자료 입력 저장 (12/12)
17
3.1 산술 할당문 3.1 산술 할당문 3. 데이터세트를 이용하는 명령어 새로운 변수 = SAS 식 ▶ 산술 할당문의 위치 : INPUT 문 뒤 or SET 문 뒤 [ 예제 3.1] DATA A; SET SAMPLE; TOT1 = hgt + wgt ; TOT2 = TOT1 + food ; RUN;
18
연산자 연산자 ▪ 산술 연산자 ▪ 산술 연산자 +( 더하기 ) -( 빼기 ) +( 더하기 ) -( 빼기 ) *( 곱하기 ) /( 나누기 ) **( 지수 ) *( 곱하기 ) /( 나누기 ) **( 지수 ) ▪ 비교 연산자 ▪ 비교 연산자 = or EQ( 같다 ) ^= or NE( 같지 않다 ) = or EQ( 같다 ) ^= or NE( 같지 않다 ) > or GT( 크다 ) or GT( 크다 ) < or LT( 작다 ) >= or GE( 크거나 같다 ) = or GE( 크거나 같다 ) <= or LE( 작거나 같다 ) 3. 데이터세트를 이용하는 명령어
19
[ 예 3.2] x1=log(x); y=b/a ; y=a*(c+3) ; [ 예 3.3] DATA kim; INPUT a b; c=(a**2)+b;
20
SAS 에서 이용되는 함수 SAS 에서 이용되는 함수 ▪ 산술함수 ▪ 산술함수 ABS( 절대값 ), SIGN( 부호 ) ABS( 절대값 ), SIGN( 부호 ) MAX( 최대값 ), M IN( 최소값 ) MAX( 최대값 ), M IN( 최소값 ) ▪ 절단함수 ▪ 절단함수 INT( 소수점 이하를 절단 ) INT( 소수점 이하를 절단 ) ROUND( 지정된 자리에서 반올림 ) ROUND( 지정된 자리에서 반올림 ) 3. 데이터세트를 이용하는 명령어
21
▪ 표본통계량함수 ▪ 표본통계량함수 MAX, MIN MAX, MIN MEAN ( 평균 ) MEAN ( 평균 ) SUM ( 합 ) SUM ( 합 ) VAR ( 분산 ) VAR ( 분산 ) STD ( 표준편차 ) STD ( 표준편차 ) STDERR ( 표준오차 ) STDERR ( 표준오차 ) 3. 데이터세트를 이용하는 명령어
22
▪ 특수함수 ▪ 특수함수 LAG ( 지체된 함수 ) LAG ( 지체된 함수 ) DIF ( 현재 값과 지체된 값의 차이 ) DIF ( 현재 값과 지체된 값의 차이 ) => DIFn(x)=x-LAGn(x) => DIFn(x)=x-LAGn(x) 3. 데이터세트를 이용하는 명령어
23
[ 예제 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; [ 결과 ] xyz 1.. 41. 341 534 253
25
3. 데이터세트를 이용하는 명령어 [ 예제 3.7] DATA diff_test; INPUT x; v=DIF1(x); w=DIF2(x); datalines; 1 4 3 5 2 RUN; [ 결과 ] xvw 1.. 43. 32 521 2-3
26
3.2 IF 문 ( 조건문 ) 1.IF SAS 식 ; 2.IF SAS 식 THEN 명령문 ; 3.IF SAS 식 THEN 명령문 ; ELSE 명령문 ; 4. IF SAS 식 THEN 명령문 ; ELSE IF SAS 식 THEN 명령문 ; ELSE 명령문 ; 3. 데이터세트를 이용하는 명령어
27
[ 예 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 SET 문 3.3 SET 문 변수의 복사 3. 데이터세트를 이용하는 명령어 [ 예제 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
둘 이상의 SAS 자료를 변수를 기준으로 결합 [ 예제 3.13] [ 예제 3.13] 3. 데이터세트를 이용하는 명령어 name gender Sung M Park F Kim M Lee F DATA new; SET a1 a2; RUN; name gender Moon F Yoon M Oh M Jang F name gender Sung M Park F Kim M Lee F Moon F Yoon M Oh M Jang F + ⇒
31
3.4 MERGE 문 3.4 MERGE 문 둘 이상의 SAS 자료를 관측치를 기준으로 병합 [ 예제 3.14] [ 예제 3.14] 3. 데이터세트를 이용하는 명령어 name Sung Park Kim Lee year make model 1993 Kia Sephia 2005 Hyundai Sonata 2001 Kia Optima Color Purple Silver Pearl Red
32
3. 데이터세트를 이용하는 명령어 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.15] [ 예제 3.15] 3. 데이터세트를 이용하는 명령어 Name year make model Sung 1993 Kia Sephia Park 2005 Hyundai Sonata Kim 2001 Kia Optima Name Color Park Purple Yoon Silver Kim Pearl Sung Red 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.5 RETAIN 문 3.5 RETAIN 문 방금 읽은 값을 계속 유지하게 하는 명령어로 실행문이 아니라 선언문으로 LAG1 과 같은 역할을 실행문이 아니라 선언문으로 LAG1 과 같은 역할을 한다. 한다. 3. 데이터세트를 이용하는 명령어 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
PROC PRINT PROC SORT PROC MEANS PROC SUMMARY PROC UNIVARIATE PROC FREQ PROC ttest 4. 기초적인 프로시저
39
4.1 PROC PRINT ( 자료의 출력 ) PROC PRINT [data=dsn] [ 선택사항 ] ; var 변수명 ; by 변수명 ; run; 4. 기초적인 프로시저
40
4.2 PROC SORT ( 자료의 정렬 ) 4.2 PROC SORT ( 자료의 정렬 ) PROC SORT [data=dsn] [out=dsn] [ 선택사항 ] ; by [descending] 변수명 ; run; 4. 기초적인 프로시저
41
4.3 PROC MEANS ( 평균과 관련된 통계량 ) 4.3 PROC MEANS ( 평균과 관련된 통계량 ) PROC MEANS [data=dsn] [ 선택사항 ] ; var 변수명 ; class 변수명 ; output out=[dsn] keyword=[name]; RUN; PROC PRINT data=[dsn]; RUN; 4. 기초적인 프로시저
42
[ 예제 4.1] [ 예제 4.1] PROC MEANS data=a n mean std sum; PROC MEANS data=a n mean std sum; VAR hgt wgt ; VAR hgt wgt ; OUTPUT out=b mean=mean1 mean2; OUTPUT out=b mean=mean1 mean2; RUN; RUN; PROC PRINT data=bb; PROC PRINT data=bb; RUN; RUN; 4. 기초적인 프로시저
43
[ 예제 4.2] [ 예제 4.2] proc means data=testdata1; class gender; var height weight bmi; run; proc sort data=testdata1; by gender; run; PROC PRINT data=; PROC PRINT data= testdata1 ;RUN; 4. 기초적인 프로시저
44
4.4 PROC SUMMARY ( 자료의 요약 ) 4.4 PROC SUMMARY ( 자료의 요약 ) PROC SUMMARY [data=dsn] [ 선택사항 ] ; var 변수명 ; class 변수명 ; output out=[dsn] keyword=[name]; run; 4. 기초적인 프로시저
45
[ 예제 4.2] [ 예제 4.2] PROC SUMMARY data=b ; PROC SUMMARY data=b ; CLASS gender ; CLASS gender ; VAR age score ; VAR age score ; OUTPUT OUT=bb mean=mean1 mean2; OUTPUT OUT=bb mean=mean1 mean2; RUN; RUN; PROC PRINT data=bb; PROC PRINT data=bb; RUN; RUN; 4. 기초적인 프로시저
46
4.5 PROC UNIVARIATE ( 분포와 통계량 ) 4.5 PROC UNIVARIATE ( 분포와 통계량 ) PROC UNIVARIATE [data=dsn] [ 선택사항 ] ; var 변수명 ; output out=[dsn] keyword=[name]; run; 4. 기초적인 프로시저
47
4.6 PROC FREQ ( 도수분포표 및 분할표 ) 4.6 PROC FREQ ( 도수분포표 및 분할표 ) PROC FREQ [data=dsn] [ 선택사항 ] ; tables 변수명 * 변수명 ; weight 변수명 ; run; 4. 기초적인 프로시저
48
[ 예제 4.3] PROC FREQ data=b ; TABLES gender ; RUN; [ 예제 4.5] PROC FREQ; TABLES x1-x30 ; RUN; [ 예제 4.6] PROC FREQ; TABLES a*(b c) ; RUN; [ 예제 4.4] PROC FREQ; TABLES gender*strata ; RUN; 4. 기초적인 프로시저
49
proc plot – scatter plot proc plot data=readin1; title ‘scatter plot of accept rate and grad rate’; plot accept_rate*graduate_rate; run;
Similar presentations