다양한 유형의 자료를 포괄적으로 처리 분석할 수 있도록 제반수단을 제공하는 통계분석 시스템
data a;
...
run;
data a;
input a$ b$ c;
datalines;
...
run;
proc print data=a;
proc print
data
=a;
run;
둘은 같은 코드
두 가지 방법이 있음
/* ... */
주로 한 줄 주석을 이용할 때 사용
*
...
;
주로 여러 줄 주석을 이용할 때 사용
예시
/* How to use comments */
* one starts with an asterisk(*) ends with a semicolon
another start with a slash(/*) and ends with a asterisk slash ;
data e1; /* data set name */
input x y z; /* variable name */
cards;
4 5 6
7 8 9
run;
DATA Step과 PROC Step으로 나누어짐
DATA Step
- 데이터세트를 만들거나 수정
PROC Step
- 데이터를 분석하거나 처리
- 통계분석 결과, 시각화, 보고서 등
예시
data a;
input x$ y z;
cards;
kim 50 163
kang 70 178
lee 68 179
;
run;
proc print data=a;
title1 'SAS 프로그래밍';
run;
SAS 데이터세트는 테이블이라고 부름
Observations(관측치)는 rows(행)으로 부름
Variables(변수)는 columns(열)로 부름
Variable Types
- Numeric(수치형)
- Character(문자형): 변수명 뒤에
$
붙힘
Missing Data
Numeric:
.
으로 표현
Character:빈칸
으로 표현
예시1
data d1;
input x y z;
cards;
1 2 3
4 5 6
;
run;
예시2
data d2;
input x$ y$ z$; /* 뒤에 $를 붙히면 문자형 */
cards;
1 가 a
2 나 b
;
run;
예시3
data f1;
input x y$;
cards;
1 가
. 나
3 .
라 라
;
run;
- 최대 32글자
- 첫 글자는 소문자, 대문자, _ (Under Bar)
- 두 번째 글자부터 소문자, 대문자, _ (Under Bar), 숫자
- 숫자는 두 번째 글자부터 가능, 특수문자는 아예 불가능
- SAS Name Type은 Data Set Name & Variable Name
옵션 명령어 | 의미 |
---|---|
noobs | obs 인덱스열 제거 |
(firstobs=n) | obs=n인 행부터 출력 |
(obs=m) | obs=m인 행까지 출력 |
(drop=변수명) | 해당 변수 제외하고 출력 |
(rename=(before=after)) | before 변수명을 after로 변경 |
단, 위의 기능을 사용한다고 원본 테이블이 변형되는 건 아님!
다음과 같은 테이블을 만들어보자
Name | Score |
---|---|
보라돌이 | 80 |
뚜비 | 90 |
나나 | 100 |
뽀 | 75 |
data Teletobi_Score;
input Name$ Score;
datalines; /* 혹은 cards; (차이 없음) */
보라돌이 80
뚜비 90
나나 100
뽀 75
;
run;
proc print data=Teletobi_Score;
run;
var
을 사용하면 됨proc print data=Teletobi_Score;
var Score Name;
run;
proc print data=Teletobi_Score;
var _all_;
run;
proc print data=Teletobi_Score noobs;
run;
proc print data=Teletobi_Score (firstobs=2 obs=3);
run;
proc print data=Teletobi_Score (drop=Name);
run;
proc print data=Teletobi_Score (rename=(Name=ID));
run;
데이터를 조작하는 건 아니고, 출력창 등의 옵션을 변경하는 것임
한번 실행하면 영구적으로 적용됨
옵션 명령어 | 의미 |
---|---|
center/nocenter | 가운데정렬/좌측정렬 |
data/nodate | 날짜출력/미출력 |
number/nonumber | 페이지수출력/미출력 |
linesize=n (ls=n) | 한 줄의 최대 글자수를 n으로 지정 (6~256) |
pagesize=n (ps=n) | 한 페이지의 최대 라인수를 n으로 지정 (15~32767) |
pageno=n | 시작할 페이지수를 n으로 지정 |
Result Viewer에만 아웃풋이 출력되면, ods listings;
실행 -> 다시보기
예시
ods listing;
options nocenter date;
proc print data=Teletobi_Score;
run;
ods listing;
options center nodate;
proc print data=Teletobi_Score;
run;