[SAS] SAS 프로그래밍 기본

강주형·2022년 9월 8일
0
post-thumbnail

SAS 프로그램

다양한 유형의 자료를 포괄적으로 처리 분석할 수 있도록 제반수단을 제공하는 통계분석 시스템


SAS 특징

  1. 세미콜론으로 문장 닫음
data a;
...
run;
  1. 라인의 어느 곳에서도 문장의 시작과 종료가 가능
		data a;
input a$ b$ c;
	datalines;
...
run;
  1. 한 문장을 여러 라인에 걸쳐서 쓸 수 있음
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;

SAS의 구조

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의 데이터세트

SAS 데이터세트는 테이블이라고 부름

Observations(관측치)는 rows(행)으로 부름
Variables(변수)는 columns(열)로 부름

변수 타입

Variable Types

  1. Numeric(수치형)
  2. 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;

변수명 규칙 (!!)

  1. 최대 32글자
  2. 첫 글자는 소문자, 대문자, _ (Under Bar)
  3. 두 번째 글자부터 소문자, 대문자, _ (Under Bar), 숫자
  4. 숫자는 두 번째 글자부터 가능, 특수문자는 아예 불가능
  5. SAS Name Type은 Data Set Name & Variable Name

PROC PRINT 옵션

옵션 명령어의미
noobsobs 인덱스열 제거
(firstobs=n)obs=n인 행부터 출력
(obs=m)obs=m인 행까지 출력
(drop=변수명)해당 변수 제외하고 출력
(rename=(before=after))before 변수명을 after로 변경

단, 위의 기능을 사용한다고 원본 테이블이 변형되는 건 아님!

예제 - 텔레토비 스코어

다음과 같은 테이블을 만들어보자

NameScore
보라돌이80
뚜비90
나나100
75

data Teletobi_Score;
input Name$ Score;
datalines; /* 혹은 cards; (차이 없음) */
보라돌이 80
뚜비 90
나나 100
뽀 75
;
run;
  1. 위에 만든 테이블을 출력해보자
proc print data=Teletobi_Score;
run;

  1. Score, Name 순으로 출력해보자
    -> var을 사용하면 됨
proc print data=Teletobi_Score;
var Score Name;
run;

  1. 전체 칼럼 출력은 아래와 같음
proc print data=Teletobi_Score;
var _all_;
run;

  1. 위에서 언급한 PROC PRINT 옵션들을 사용해보자
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;


SAS System 옵션

데이터를 조작하는 건 아니고, 출력창 등의 옵션을 변경하는 것임
한번 실행하면 영구적으로 적용됨

옵션 명령어의미
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;

profile
Statistics & Data Science

0개의 댓글