안녕하세요
이번 게시글은 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의 예로,
월별 비용, 월별 매출액, 월별 목표액, 월별 세금 데이터 셋이 개별 데이터 셋으로 존재하는데, 이를 월 기준으로 수평 결합하여 하나의 데이터 셋 생성해보겠습니다.
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에 데이터로 저장 합니다.
결과입니다.
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 : 빈도 대상 변수의 유일값의 개수를 표시합니다.
위 코드의 결과값 입니다.
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;
위 코드의 결과값 입니다.