제 2장 SAS 프로그램의 구성 DATA 단계와 PROC(EDURE) 단계 DATA 단계는 data set 생성, data set 가공, 처리 PROC 단계는 SAS 라이브러리를 불러내어 수행 DATA 단계 SAS의 첫 문장은 반드시 DATA문으로 시작 data file의 지정과 읽어들이기 영구적인 자료파일의 지정 및 보존
SAS는 어떤 칼럼에서나 시작하고 끝낼수 있다 여러문장을 하나의 줄에 사용가능 단) 문장 사이에는 세미콜론으로 끝난다 한문장을 여러줄에 계속 사용 명령어나 단어는 하나 또는 그 이상의 공백으로 구별 /* */ : 주석문 (수행하지 않음) Data Value : 문자값, 숫자값 모두 가능 변수명 : 8자리, 숫자, 문자, _혼용, 첫자는 반드시 영문
<예 2.1> (외부로 부터 자료를 입력) Data file의 지정과 읽어들이기 <예 2.1> (외부로 부터 자료를 입력) DATA FEMALE ; INFILE ‘C:\USER\STAT\FEMALE.DAT’ ; INPUT ID $ 1-2 REGION 4-5 INCOME 7-9 ; RUN ; <예 2.2>(내부에서 자료 입력) CARDS ; 11 11 352 12 13 230 ;
INFILE : 외부 data file 불러오기 INPUT 문 사용 INFILE : 외부 data file 불러오기 CARDS : data 입력시 사용 입력방식 free format, column input, pointer input $ : 문자 변수시 사용 결측치는 . 사용 @ : 다음 INPUT문을 만날때 까지 기다리라는 기호 @@ : 한행에 여러 개의 자료값 입력시 사용
절차(PROCEDURE) DATA 단계에서 생성된 자료를 이용 자료관리, 기초통계처리, 자료분석, 자료출력 등을 수행 PROC문은 수행하고자 하는 절차명과 처리할 data set이름 및 명령문으로 구성 주의) data set 이름이 생략되면 가장 최근의 data set 이용 PRINT 절차 PROC PRINT <options> ; VAR variable list ; ID variable list ; BY variable list ; PAGEBY variable list ; SUMBY variable list ; SUM variable list ;
예제 2.1 /* PRINT.SAS : PRINT PROCEDURE */ DATA FEMALE ; INPUT ID $ 1-2 REGION 4-5 INCOME 7-9 ; CARDS; 11 11 352 12 13 230 13 12 328 14 10 210 15 12 415 16 11 368 ; RUN; PROC PRINT DATA=FEMALE ; TITLE ‘FEMALE INCOME’ ;
SORT 절차의 이용 SORT 절차 PROC SORT <options> ; BY <DESENDING> variables list ; 예제 /* SORT.SAS : SORT PROCEDURE */ PROC SORT ; BY REGION INCOME ; RUN; PROC PRINT ; TITLE ‘FEMALE INCOME DATA SORTED BY REGION,INCOME’;
TRANSPOSE 절차의 이용 TRANSPOSE 절차 PROC TRANSPOSE <options> ; VAR variables list ; ID variables list ; COPY variables list ; BY variables list ; 예제 /* TRANS.SAS : TRANSPOSE PROCEDURE */ PROC TRANSPOSE DATA=FEMALE OUT=FEMALE1 ; RUN ; PROC PRINT ; TITLE ‘NEW DATA SET AFTER TRANSPOSE ‘ ;
/* PASS.SAS : READ PASSENGER DATA */ SAS data set 예제 /* PASS.SAS : READ PASSENGER DATA */ DATA PASS ; INPUT FLIGHT $ 1-3 +1 DATE DEST $ 13-15 BOARDED 17-19 TRANS 21-23 NOREV 25-27 ; INFORMAT DATE DATE7 ; FORMAT DATE DATE7 ; CARDS ; 114 01MAR90 LAX 172 18 6 (생략) ; RUN ; PROC PRINT ;
기타 유용한 문장들 LENGTH 문 예제> /* LENGTH.SAS : DATA SET USING LENGTH STATEMENT */ DATA PASS1 ; SET PASS ; LENGTH CITY $ 11; IF UPCASE(DEST) = ‘DFW’ THEN DO ; CITY = ‘Dallas’ ; END ; ELSE IF UPCASE(DEST) = ‘LAX’ THEN CITY = ‘Los Angeles’ ; RUN; PROC PRINT ; RUN ;
LABEL 문 예제> /* LABEL.SAS : PRINT USING LABEL STATEMENT */ PROC PRINT DATA=PASS SPLIT=‘*’; ID FLIGHT ; VAR DATE DEST BOARDED ; LABEL FLIGHT = ‘비행기*번호’ DATE = ‘비행*시간’ DEST = ‘목적지’ BOARDED = ‘탑승객의*수’; RUN ;
TITLE 문과 FOOTNOTE 문 일반형식 TITLE n ‘text’ ; FOOTNOTE n ‘text’ ; 예제> /* TITLE.SAS : PRINTING USING TITLE STATEMENT */ PROC PRINT DATA=PASS; ID FLIGHT ; VAR DATE DEST BOARDED ; TITLE1 ‘런던/파리간 운행 기록 분석’ ; FOONOTE1 ‘Prepared by the Corporate Information Center’ ; RUN ;
SAS의 연산자 산술 연산자 +, - , * , / , ** 비교연산자 논리연산자 = EQ & A ND 비교연산자 논리연산자 = EQ & A ND ^=, ~= NE | OR >(<) GT(LT) ^ NOT >=(<=) GE(LE) < > MAX > < MIN
SAS함수, 확률함수와 통계량함수 SAS 함수 확률함수 통계량함수 ABS, MAX, MIN PROBBN(p, n, r) CV MOD PROBCHI(x, df) KURTOSIS SQRT PROBF(x, df1, df2) MEAN INT PROBT(x, df) NMISS ROUND PROBNORM(x) RANGE EXP PROBT(x, df) SKEWNESS LOG STD LOG10 STDERR SIN, COS, TAN USS ARSIN, ARCOS, ARTAN VAR COSH, SINH, TANH