본문 바로가기
Data_Analysis/SAS

[SAS] 자료 행 분할

by Classic! 2020. 12. 1.

데이터 행이 너무 많아서 25% 정도 잘라서 사용하려고 합니다.

SAS에서 데이터 행 분할하는 쉬운 방법을 몰라 제가 시도한 몇 가지 방법을 소개하려고 합니다. 

아래 소개한 방법 외에 좀 더 간단한 방법이 있다면 공유 부탁드립니다~! :)


- 데이터: 캐글의 Credit Card Approval Prediction

- 기준 열 : app데이터의 ID열

 

1. SQL로 자르기

# 방법1 ) SQL
PROC SQL;
  CREATE TABLE dataset.app_1 AS
  SELECT *
  FROM dataset.app
  WHERE ID<600000;
RUN;

 

2. IF문으로 자르기

# 방법2 ) IF
DATA dataset.app_1;
  SET dataset.app;
  IF ID<600000;
RUN;

 

3. index 행을 만들어서 자르기

# 방법3 ) 인덱스 열로 자르기
# ID를 기준으로 순위 매기기
# 또는 DO~END로도 가능
PROC RANK DATA=dataset.app out=dataset.app_idx;
  VAR ID;
  RANKS IDX;
  option nolabel;
RUN;

#IDX 기준으로 자르기
DATA dataset.app_1;
  SET dataset.app_idx;
  IF IDX<450000;
RUN;

 

4. option obs로 자르기

# 방법 4) obs로 자르기
DATA dataset.app_1;
  OPTIONS FIRSTOBS=2 OBS=100000
  SET dataset.app;
RUN;

 

5. 자료 길이를 구해서 자르기

방법5 ) 자료길이 변수로 자르기
DATA _NULL_;
  SET dataset.app nobs=n;
  obs_num=round(n*0.25,1);
  CALL SYMPUT("obs_n",obs_num);
RUN;

# obs에 위에서 만든 변수 obs_n을 넣어서 자르기
DATA dataset.app_1;
  SET dataset.app;
  OPTIONS OBS=&obs_n;
RUNl

 

'Data_Analysis > SAS' 카테고리의 다른 글

[SAS] 범주형 자료분석  (2) 2021.01.07
[SAS] 기술통계량 산출 및 정규성 검정  (0) 2021.01.04
[SAS] Macro  (0) 2020.11.23
[SAS] SQL문  (2) 2020.11.23
[SAS] Data Step  (0) 2020.11.16

댓글