BookmarkSubscribeRSS Feed

[SAS 활용 노하우] Data Handling with SAS part1

Started ‎12-31-2020 by
Modified ‎01-09-2021 by
Views 1,758

안녕하세요 

이번 게시글은 기초 SAS 문법 / 명령문 관련된 글 입니다.

 

1. library 

파일시스템 경로에 별칭을 부여한 것으로 SAS 파일의 저장장소입니다.

라이브러리를 등록해 두면 SAS 내에서 특정 폴더를 지칭하여 바로 사용할 수 있어 편리합니다 .

 

< 종류 >

  - 1). 시스템 정의 라이브러리와 사용자 정의 라이브러리 

         시스템 정의 라이브러리 : SAS를 설치 시에 자동적으로 생성되는 라이브러리로 

         SASHELP, SASUSER, WORK, MAPS 등이 있습니다.

        사용자 정의 라이브러리 : SAS 사용자가 생성하는 라이브러리 입니다.

 - 2). 임시 라이브러리와 영구 라이브러리

         WORK : SAS를 종료함녀 라이브러리 내에서 자동으로 삭제.

         WORk 이외의 라이브러리 : SAS 종료 후에도 라이브러리 내에서 자료가 보존

 

< SAS 파일 사용법 > -  라이브러리명.SAS파일명

모든 SAS 파일은 2 - 레벨 이름으로 사용됩니다.

ex) Proc Print Data = SASUSER.dataset1 Run;

 

하지만, WORK 라이브러리를 사용할 경우 생략이 가능.

 

 

 2. Import / Export

SAS와 외부 데이터를 공유하는 명령어.

Import Wizard, Export Wizard 를 이용하여 다양한 형태의 외부 데이터를 공유할 수 있습니다.

 

< Wizard 이용하는 방법 > 

1.png

 

1) '파일 > 데이터 가져오기' Import Wizard 열기

2) 원하는 데이터 형식 선택 > Next

3) Option 변경

4) 저장될 라이브러리와 SAS-data-set 이름 지정 후 Finish

5) Export Wizard는 반대로 sas-data-set을 외부 데이터로 저장 가능

 

< Proc Import 문법 >

proc import out=work.exam 
datafile=“c:\...\exam.xls’
dbms=excel replace;
       sheet=“sheet1$”;
       getnames=yes;
       mixed=no;
       scantext=yes;
       scantime=yes;
run; 

 

1) proc import : 저장될 sas data set 지정

2) datafile : 가져올 data의 위치

3) dbms : 가져올 외부 data의 포맷을 지정 ( sheet, getnames, mixed, scantext, scantime으로 다양한 옵션을 지정할 수 있습니다. )

 

< Proc Export 문법 >

proc export out=work.test
     outfile=“c:\...\text.xls’
     dbms=excel replace;
     sheet=“test”;
run; 

 

1) proc export : 내보낼  sas data set 지정.

2) outfile : 내보낼 data의 위치

3) dbms : 내보낼 data의 포맷 지정

 

 

3. Infile/File 

외부 파일을 읽어 오거나 SAS 데이터 셋을 외부 파일로 출력합니다.

Text 형식의 raw data를 읽어올 때는 data의 길이나 위치에 따라 특별한 정의가 필요한 경우 사용합니다.

 

< Infile > 

Input 문장에서 읽을 raw data file 의 이름을 명시합니다.

'Infile' 키워드 옆에 따옴표 안에 읽어 올 외부 팡일의 경로 또는 파일명을 기술합니다.

 

< Input >

Infile 문장에서 지정한 외부 파일을 읽어올 방식을 지정하는 문장입니다. 외부파일의 데이터 값을 어떻게 읽어와서 어떤 변수에 저장할 것인지를 지정합니다.

 

data work.staff;
   infile ‘test-file-location’;
   input empid      $  1-4 lastname  $  5-17
           firstname $ 18-30 salary      37-45;
run;

 

< File 문장 >

Put 문장에서 출력할 raw data file의 이름을 명시합니다. file 키워드 옆에 있느 ㄴ따옴표 안에 출력할 외부 파일의 경로 또는 파일명을 기술합니다.

 

< Put 문장 >

file 문장에서 지정한 외부 파일로 출력할 방식을 지정하는 문장으로 SAS 데이터 셋을 읽어서 외부 파일의 어떤 변수에 저장할 것인지를 지정합니다.

data _null_;
   set work.staff;
   file ‘test-file-location’;
   put empid     $  1-4 lastname  $  5-17
         firstname $ 18-30 salary      37-45;
run;

 

4. Proc SQL

sas 시스템에서 SQL (structured Query Language)를 사용하기 위한 프로시저로 data step이나 다양한 함수뿐 아니라 SQL을 사용하기 위한 프로시져도 제공합니다.

 

< SQL Procedure >

PROC SQL <options> ; 
     SELECT expression; 
     INSERT expression;
     UPDATE expression;
     DELETE expression;
     CREATE expression; 
     DROP expression;
     ALTER expression;
     DESCRIBE expression;

 

- SELECT : 조회할 칼럼 선택

- INSERT : 테이블 속성과 뷰 정의 내용을 조회

- UPDATE : 테이블(또는 뷰)의 특정 행의 칼럼 값을 수정

- DELETE : 테이블(또는 뷰)에서 특정 행 삭제

- CREATE : 테이블, 뷰, 인덱스 생성

- DROP : 테이블, 뷰, 인덱스  삭제

- ALTER : 테이블에서 칼럼의 추가, 삭제, 속성 변경

- DESCRIBE : 테이블 속성과 뷰 정의 내용을 조회

 

< Select >

SELECT column-1<, column-2>...
	FROM table-1|view-1<, table-2|view-2>... 
	<WHERE expression>
	<GROUP BY column-1<, column-2>…>
	<HAVING expression>
	<ORDER BY column-1<, column-2>… <DESC>>;

 

 

5. MACRO

반복적으로 사용하는 변수나 프로그램을 생성하는 매우 강력한 도구로 반복 작업 또는 사용자가 지정한 정보에 따라 고정된 작업을 수행하는 상황 등에 자주 쓰입니다.

 

< 매크로 변수 >

%LET 문장: 매크로 변수를 생성하고 매크로 변수에 값을 저장하기 위해 사용함

%LET variable=value ;

생성되어 있는 매크로 변수에 저장되어 있는 값을 가져올 때는 매크로 변수 앞에 & 기호를 사용합니다.

 

ex)

1.

%LET test=sashelp.class;
PROC PRINT data=&test;
RUN;

2.

PROC PRINT data=sashelp.class;
RUN;

 

예시 1번과 2번의 경우 두개 다 같은 결과를 가져옵니다.

 

< 매크로 정의와 호출 >

1. 정의와 호출

%MACRO macro-name;
         macro-text
%MEND <macro-name>;
%macro-name

macro-text는 어떠한 문자도 입력할 수 있고, sas 문장으로 매크로 변수를 참조하거나 매크로 함수와 매크로 문장을 호출을 할 수 있습니다.

macro-name은 SAS 변수 명명 규칙을 따르도록 지정되어 있습니다. 

 

2. 정의와 호출

%macro class;
   PROC PRINT data=sashelp.class;
   RUN;
%mend class;
%class

 

Version history
Last update:
‎01-09-2021 02:46 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