SAS Tech & Tip

BookmarkSubscribeRSS Feed

SAS 실전 활용 가이드 4

Started Sunday by
Modified Sunday by
Views 76

지난 게시글에는 SAS의 사용법과 함께 실제 statement 를 활용해 데이터를 효과적으로 분석하고 직관적인 보고서를 작성하는 방법에 대해서 다루었습니다.

이를 통해 SAS를 활용한 데이터 분석이 단순한 코드 작성이 아니라, 데이터를 보다 쉽게 이해하고 활용하는 과정에 대해서 알 수 있었습니다.

이번 글에서는 새로운 데이터셋을 활용한 실전 사례를 통해 SAS의 강력한 분석 기능을 한층 더 심도 있게 익혀보겠습니다.

 

 

■ 분석 데이터

 

데이터셋은 총 4개 입니다.

 

 

DataSet 1. Customers

 

1055 개의 데이터와 4개의 칼럼(Customer_name, Province , Customer_Segment, id) 으로 구성되어 있습니다.

 

image.png

 

 

 

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)으로 구성되어 있습니다.

 

image.png

 

 

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) 으로 구성되어 있습니다.

 

 

image.png

 

 

 

 

DataSet4. Returns

 

572개의 데이터, 2개의 칼럼( Order ID, Status) 로 구성되어 있습니다.

 

image.png

 

 

위 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;

 

 

image.png

 

 

  • 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;

 

 

image.png

 

 

 

WORK라이브러리에 MERGE_DATA 테이블에서 고객(CUSTOMER_NAME)별 총 이익( SUM(PROFIT))을 계산하는 코드입니다.

Version history
Last update:
Sunday
Updated by:
Contributors

sas-innovate-white.png

Join us for our biggest event of the year!

Four days of inspiring keynotes, product reveals, hands-on learning opportunities, deep-dive demos, and peer-led breakouts. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Article Tags