데이터 행이 너무 많아서 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 |
댓글