BookmarkSubscribeRSS Feed

[SAS 활용 노하우] 파일참조와 세팅 옵션

Started ‎08-30-2021 by
Modified ‎08-30-2021 by
Views 1,788

 

 

[SAS 기본구조]

 

SAS의 기본 구조는 아래와 같습니다.

 

data admit1;
set admit;
run;

proc print data = data2;
run; 

 

위의 코드는 admit1이라는 데이터 셋을 생성한 것 입니다.

SAS는 DATA, PROC, RUN. QUIT을 만나면, 구문 읽는 것을 멈추고, 이전 스텝을 실행합니다.

위의 예시 중 data step과 proc step 사이에 run은 안써도 무관합니다.

 

 

[Library란?]

 

Library는 (Windows 환경 하에서) 같은 디렉토리(폴더)에 저장되어 있는 SAS 파일들의 그룹을 의미합니다. SAS dataset이 저장되는 폴더라고 생각하시면 됩니다.

 

- 일시적 Library : work.파일명

- 영구적 Library : 기타Library.파일명

 

 

[SAS data set의 규칙]

 

- 1~32 문자로 이루어 졌습니다.

- 문자로 시작해야 합니다.(A-Z(대․소문자 가능, 또는 _)

- 숫자, 문자, _의 조합으로 연속 가능합니다. 

→ 이는 data set 내의 variable의 규칙과도 동일합니다.

 

 

[SAS variable(=columns)의 규칙]

 

기본적으로는 SAS data set의 규칙과 동일합니다.

variable의 경우 null값을 표시하는 방법이 다릅니다.

   - 문자 변수의 경우 ‘공백’

    - 숫자 변수의 경우 ‘마침표(.)’

 

문자 변수는 Length는 32,767 bytes까지 가능하고, length statement로 길이가 정해지거나, 다른 rule(처음 입력되는 변수 값의 길이)를 통해 길이가 정해지는 반면, 숫자 변수의 경우 default length가 8입니다.

 

 

[ SAS의 default library]

 

SAS help : Permanent - read only

Sasuser : Permanent - personal setting

Work : Temporary

 

 

[Library 할당]

 

1) Libname test 'c:\sas\definitice';

- Library명은 1-8 크기의 문자이며, 문자/_로 시작해야하고, 문자/숫자/_만을 포함할 수 있음

2) Libname test SPSS 'g:\myspss.dat';

- BMDP, OSIRIS, SPSS file에 대한 읽기-전용 라이브러리 설정 가능

 

 

[Library 조회]

 

1) proc contents

   

    proc contents data=mylib._all_nods;

    _all_ : 라이브러리의 모든 파일 조회(‘라이브러리명._all_‘로 표시)합니다.

    - nods : no detail 의미(_all_ 쓸 때만 사용 가능)

 

    proc contents data=mylib.admit;

    - 특정 데이터셋(admit)의 정보 조회시 데이터셋명 명시

 

2)  proc datasets의 contents statement

 

     proc datasets; 

     contents data=sasuser._all_nods;

     quit;

 

 

* Proc contents와 Proc dataset의 차이

차이1) proc contents는 work 또는 user가 default Library인 반면, proc datasets의 contents statement는 procedure input library가 default입니다.

 

차이2) proc datatets은 run statement가 아닌 quit statement가 요구되는 상호적 프로시져입니다.

 

 

[라이브러리의 변수(Variable=Column) 정보 조회]

 

 

Proc contents나 Proc datasets의 contents statement에서 VARNUM 옵션 사용

- ex1) Proc datasets;

- ex1) contents data=sasuser.admit varnum;

- ex2) Proc contents data=sasuser.damit varnum;

 

 

[SAS의 output]

 

1. SAS에서는 아래의 output 생성 가능합니다.

1) HTML document

2) Listing(traditional SAS output)

 

 

 

2. Option statement로 시스템 옵션 수정 가능

Option statement는 global : SAS session을 끝내거나 옵션을 수정할 때까지 유효합니다.

 

- nonumber/nodate : SAS output에 Default로 표시되는 페이지 넘버와 날짜 미표시

 

- pageno : 페이지 넘버 표시할 경우, 시작 페이지를 설정

(default는 1)

 

- pagesize : 한 페이지에 몇 개의 라인이 포함될지를 설정

(default는 15 : 제목, 날짜 등 포함)

 

- linesize : 페이지의 너비를 설정

 

- yearcutoff : 두자리 연도의 범위를 설정 * 연도 데이터가 4자리인 경우는 불필요!

(default는 1920)

ex) yearcutoff=1920일 경우, 1920 ~ 2019의 범위로 인식

A. ‘41.03.26 인 경우 : 1941.03.26

B. ‘15.05.31 인 경우 : 2015.05.31

C. ‘21.11.12 인 경우 : 1921.11.12

 

- firstobs/obs : firstobs는 추출하려는 첫 번째 행을(default는 1), obs는 마지막 행을 설정

(두 옵션을 같이 써서 추출 범위를 설정 가능)

** obs=max 옵션으로 마지막 관측치의 수를 초기화 가능

** firstobs와 obs옵션을 시스템 옵션이 아닌 데이터셋 옵션으로 사용하면, 시스템 옵션에 우선시됨

 

즉, options firstobs=10 obs=15;

proc print data=sasuser.heart;

run; 하면, 10~15까지 6개 관측치가 표시되는데,

 

options firstobs=10 obs=15;

proc print data=sasuser.heart(firstobs=4 obs=20);

run;처럼 데이터셋 옵션으로 지정하면, 위 옵션 무시하고 4~20까지의 관측치 표시

 

 

Version history
Last update:
‎08-30-2021 06:34 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags