목차
1. SAS 프로그래밍의 기본 요소
1) SAS 명령문의 구성요소
•
중심어: SAS 명령문의 종류를 나타내는 것으로 DATA, INPUT, CARDS, PROC, RUN 등이 있음.
•
이름: 변수, SAS 데이터 셋, 프로시저 등의 이름을 나타냄. 변수와 SAS 데이터 셋의 이름은 사용자가 다음 형식에 따라 지정한다.
◦
영문자 또는 _ 로 시작해야 함 (한글명 불가)
◦
최대 32자의 문자열 사용 가능
◦
이름의 중간에 숫자 사용은 가능
◦
공백 및 특수문자(., #, $, ? 등)는 사용불가
•
특수문자 및 연산자: 특수한 역할을 위해 정의된 $, ; 등의 특수문자와 * / 등의 연산자를 사용함.
2) SAS 명령문의 형식
•
하나의 중심어로 시작하여 반드시 ; (세미콜론)으로 닫아주어야 한다.
•
명령문의 각 원소는 적어도 하나 이상의 공백에 의하여 구분되어야 한다.
•
일반적으로 대/소문자를 구분하지 않고 사용해도 무방함.
•
한 행(line)의 어느 열(column)에서나 시작할 수 있고, 다음 행으로 한 단어의 짤림이 없이 연속될 수 있으며, 한 행에 여러 개의 명령문을 사용할 수 있음.
•
사용자는 /* 주석내용 */ 의 형식으로 주석을 추가할 수 있음.
3) DATA 스텝과 PROC 스텝
•
SAS 프로그램은 DATA 스텝과 PROC 스텝의 반복으로 구성됨.
(1) DATA Step
•
DATA Step은 SAS 데이터 셋의 생성 및 자료 변형 등 데이터에 대한 조작을 수행하는 단계이다.
•
DATA라는 중심어와 생성하고자 하는 SAS 데이터 셋의 이름(사용자가 정의)으로 시작된다.
•
예시
DATA TEMP;
INPUT SUBJECT SATV SATM;
CARDS;
1 520 490
2 610 590
...
Plain Text
복사
(2) PROC Step
•
PROC Step은 SAS 데이터 셋을 이용하여 통계분석, 그래프 및 보고서 작성 등을 수행하는 단계이다.
•
PROC이라는 중심어와 특정한 역할을 수행하는 프로시저의 이름으로 시작된다.
•
각 프로시저들은 특정한 통계 분석이나 그래프 그리기 등의 기능을 담당하며, 프로시저마다 일정한 문법 형식을 가지고 있다.
•
예시
PROC PRINT DATA=person;
Plain Text
복사
2. SAS 파일 생성하기
SAS 확장편집기 창을 이용하여 SAS 파일을 생성하는 방법에는 2가지가 있다. 첫 번째는 직접 자료를 입력하는 것이고 두 번째 방법은 외부파일을 읽어들이는 방법이다.
1) 직접 자료를 입력하는 방법
•
DATA: SAS 파일을 생성하기 위해서는 반드시 DATA로 시작하고, DATA 다음에 명기된 이름으로 SAS 파일이 작성된다.
•
INPUT: SAS 파일을 구성하기 위해서 읽어들이는 자료의 속성을 변수로 지정한다. 변수명은 사용자가 직접 지정함.
•
CARDS: SAS에서 직접 자료를 입력하여 파일을 만드는 경우 사용하는 명령어이다. 자료 입력이 끝난 후 반드시 ;을 이용하여 자료 입력의 종료를 선언함.
•
RUN: SAS 명령문의 종료를 선언함.
•
예시
DATA grade;
INPUT id name $ class $ score grade $;
CARDS;
2590 john Stat 80.3 A
3569 willy Math . B
7048 younghee . 30.6 C
;
RUN;
Plain Text
복사
→ 변수명 뒤에 $을 넣는 경우 해당 변수가 Character Type임을 선언하는 것.
→ 결측값은 마침표(.)로 표시
2) 외부파일을 SAS로 읽어들이는 방법
•
INFILE: 데이터를 외부파일로부터 읽는 경우에 외부파일의 경로(path)와 파일이름(filename)을 지정하는 명령문
◦
항상 INPUT 명령문 앞에 위치해야 함. INPUT 문의 활용 방법은 (1)에서와 동일
◦
경로를 포함한 파일명을 인용부호(” “)로 닫아주어야 함.
◦
INFILE 명령문의 주요 옵션
▪
DLM=’,’: CSV 파일을 읽을 수 있음
▪
FIRSTOBS=n : n번째 행에서부터 자료를 읽기 시작
•
예시
DATA POTTERY;
INFILE 'D:\SASexamples\pottery.csv' DLM=',' FIRSTOBS=2;
INPUT Al Fe Mg Ca Na Site$ ;
RUN;
Plain Text
복사