SAS 실전 활용 가이드 4
- Article History
- RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
지난 게시글에는 SAS의 사용법과 함께 실제 statement 를 활용해 데이터를 효과적으로 분석하고 직관적인 보고서를 작성하는 방법에 대해서 다루었습니다.
이를 통해 SAS를 활용한 데이터 분석이 단순한 코드 작성이 아니라, 데이터를 보다 쉽게 이해하고 활용하는 과정에 대해서 알 수 있었습니다.
이번 글에서는 새로운 데이터셋을 활용한 실전 사례를 통해 SAS의 강력한 분석 기능을 한층 더 심도 있게 익혀보겠습니다.
■ 분석 데이터
데이터셋은 총 4개 입니다.
DataSet 1. Customers
1055 개의 데이터와 4개의 칼럼(Customer_name, Province , Customer_Segment, id) 으로 구성되어 있습니다.
PROC IMPORT OUT=WORK.CUSTOMER
DATAFILE= 'C:/customers.xlsx'
DBMS=XLSX
REPLACE;
GETNAMES = YES;
RUN;
proc print data = work.customer; run;
DataSet2. Product
1,093개의 데이터, 5개의 칼럼(Product_Category, Product_Sub_Category, Product_Name, Product_Container, Id)으로 구성되어 있습니다.
DstaSet3. Sales
2,999개의 데이터, 21개의 칼럼(Row_ID, Order_ID, Order_Date, Order_Quantity, Sales, Discount , Ship_Mode, Profit, Unit_Price, Shipping_Cost, Customer_Name, Province, Customer_Segment, Product_Category, Product_Sub_Category, Product_Name, Product_Container, Product_Base_Margin, Ship_Date, customer_id, product_id) 으로 구성되어 있습니다.
DataSet4. Returns
572개의 데이터, 2개의 칼럼( Order ID, Status) 로 구성되어 있습니다.
위 4개의 데이터셋은 Customer I.D 칼럼과 Product 칼럼을 기반으로 서로 연결되어 있으며, 하나의 데이터로 병합할 수 있습니다.
■ 데이터 병합
PROC SQL;
CREATE TABLE MERGE_DATA AS
SELECT A.*, B.*, C.*
FROM WORK.SALES AS A
LEFT JOIN WORK.CUSTOMER AS B
ON A.CUSTOMER_ID = B.ID
LEFT JOIN WORK.PRODUCTS AS C
ON A.PRODUCT_ID = C.ID;
QUIT;
PROC PRINT DATA=MERGE_DATA (OBS=20); RUN;
-
CREATE TABLE MERGE_DATA: 새로운 테이블 MERGE_DATA를 생성하는 SQL 문입니다.
-
SELECT A.*, B.*, C.* : A(SALES), B(CUSTOMER),C(PRODUCTS) 테이블의 모든 컬럼을 선택합니다.
-
LEFT JOIN WORK.CUSTOMER AS B
ON A.CUSTOMER_ID = B.ID : SALES 테이블(A)의 CUSTOMER_ID 칼럼과 PRODUCTS 테이블(B) 의 ID 칼럼을 기준으로 병합니다.
■ 고객별 매출 집계
데이터를 병합하고 SQL을 활용하여 고객별 매출 데이터를 계산하려고 합니다.
PROC SQL;
CREATE TABLE WORK.PERCUS AS
SELECT CUSTOMER_NAME, SUM(PROFIT) AS PROFIT
FROM WORK.MERGE_DATA
GROUP BY CUSTOMER_NAME
ORDER BY PROFIT DESC;
QUIT;
RUN;
WORK라이브러리에 MERGE_DATA 테이블에서 고객(CUSTOMER_NAME)별 총 이익( SUM(PROFIT))을 계산하는 코드입니다.