BookmarkSubscribeRSS Feed

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

Started ‎01-12-2021 by
Modified ‎01-12-2021 by
Views 1,191

 

안녕하세요

이번 게시글은 Data Handling with SAS part2의 이어지는 게시글입니다.

 

11. Merge

하나의 테이블을 다른 테이블(들)과 결합하여 새로운 data-set을 생성하는 명령문으로 Sort가 되어있는 data에 대해서 정렬된 집합을 스캔하여 merge를 하기 때문에  연결속도가 join 보다 빠릅니다.

 

< Merge 특징 > 

•  두 개 이상의 SAS 데이터 셋을 수평으로 결합하기 위해서, Data step에서 MERGE 문장과 BY 문장을 사용

•  일반적으로 다른 데이터 셋에 있는 필요한 변수를 추가시킬 때 사용하는 결합 방식

•  수평 결합을 하기 위해서는 기준(BY) 변수가 필요

•  결합할 data-set 들은 반드시 기준 변수 기준으로 정렬되어 있어야 함 (PROC SORT 사용)

 

DATA SAS-data-set;	
     MERGE SAS-data-sets;	
     BY BY-variable(s);	
     <other SAS statements>
RUN;

 

Merge의 예로, 

월별 비용, 월별 매출액, 월별 목표액, 월별 세금 데이터 셋이 개별 데이터 셋으로 존재하는데, 이를 월 기준으로 수평 결합하여 하나의 데이터 셋 생성해보겠습니다.

 

 

그림1.png

 

 

12. Contents

sas data set에 관한 전반적인 내용을 출력하는 명령문입니다.

 

PROC CONTENTS DATA = sashelp.class 
OUT = class;
RUN;

 sashelp.class에 대하여 전반적인 속성을 출력하여 work.class 파일로 저장 합니다.

 

•  SAS-data-set 에 관한 전반적인 속성(컬럼명 , 길이 , 타입 , 라벨 등)을 출력

•  DATA=  지정한 SAS-data-set에 대하여 정보를 출력

•  OUT= CONTENTS실행 결과를 OUT=에 지정한 SAS-data-set에 데이터로 저장 합니다.

 


그림1.png

결과입니다. 

 

13. Datasets

 

Sas-data-set에 대한 전반적인 관리를 해주는 프로시저로 Datasets procedure는 APPEND, CONTENTS, COPY 등 기존에 있던 몇 가지 프로시저의 기능도 포함하고 있습니다.

 

PROC DATASETS <option(s)> ;
    CHANGE old-name-1 = new-name-1 ;
    DELETE SAS-file(s) ;
    MODIFY SAS-file ;
        RENAME old-col-name-1 = new-col-name-1 ;
RUN;

 

•  DATASETS 프로시져는 SAS파일 (SAS-data-set)의 이름 변경,삭제,컬럼명 변경등을 수행하는 Utility 프로시저

•  CHANGE : 기존 SAS파일(old-name)을 새로운 이름의 SAS파일명(new-name)으로 변경

•  DELETE : 지정한 SAS파일(들)을 삭제

•  MODIFY : 지정한 SAS파일의 컬럼명 변경과 같은 속성정보를 변경

•  MODIFY를 통해서 SAS파일을 지정 후 RENAME문장을 통해서 컬럼명을 변경

 

14. Proc Freq 

일차원 또는 다차원 빈도표와 변수들간의 상호연관성을 파악하는 측도를 제공하는 명령문으로 CHISQ(독립성 검정을 위함 카이제곱 통계량), AGREE(일치도 통계량) 등의 옵션을 지정할 수 있습니다.

 

PROC FREQ DATA=SAS-data-set
TABLES SAS-variables < / options >; 
TABLES variable1*variable2 < / options >; 
RUN;

 

•  변수의 값에 대한 빈도(및 백분율)를 표시해 줌.

•  해당 변수에 결측값이 있을 경우 리포트 하단에 결측값이 몇 개인지를 표시함.

•  TABLES 문장의 옵션

•  Out= 데이터셋명 : 변수 값과 빈도를 데이터셋으로 생성

 

sashelp.class 데이터를 이용하여  sex, age의 각각 일원 빈도와  age와 sex의 이원빈도를 알아보겠습니다.

PROC FREQ DATA = sashelp.class NLEVELS;
	TABLES sex age age*sex / OUT = class ;
RUN;

  + NLEVELS : 빈도 대상 변수의 유일값의 개수를 표시합니다.

 

                그림1.png   그림2.png

위 코드의 결과값 입니다.

 

15. Proc Means

숫자변수에 대한 기본적인 일변량 기술통계량을 제공하는 명령문입니다.

PROC MEANS DATA= sas-data-set <통계량(s)> <option(s)> ;
CLASS variable(s); 
VAR variable(s); 
RUN;

 

sashelp.class 데이터에서 Height, Weight각 변수에 대하여 개수, 평균, 최대값, 최소값, 범위, 표준편차등을 보여주는 예시입니다.

 

proc means data=sashelp.class 
n mean max min range std;
output out = class;
   var Height Weight;
run;

 

그림1.png

위 코드의 결과값 입니다.