목적
오늘은 SAS 프로그램을 이용하여 data step에서 제어문에 대해 알아보자. Sample data는 sashelp.class를 이용할 것이다.
SAS 프로그램에서 제어문은 아래와 같이 있는데,
- IF (조건 IF, 선택 IF)
- Do loop (단순 Do, 반복 Do, Do Ultil, Do While)
- Select when
1. IF
1.1 조건 IF
- 조건에 해당하는 새로운 변수를 생성할 때 사용
- if 조건1 then 변수=xx; else if 조건2 then 변수=xx; else if 조건3 then 변수=xx; ... ; else 변수=xx;
data a; set sashelp.class; if AGE<=12 then AGEGRP=1; else if AGE<=14 then AGEGRP=2; else AGEGRP=3; run; |
1.2 선택 IF
- 조건에 해당하는 데이터를 추출할 때 사용
- if 조건;
data a; set sashelp.class; if SEX="남"; run; |
2. Do loop
2.1 단순 Do
- 한개 이상의 문장을 쓰고 싶을 때 사용
- do; 문장1; 문장2; ...; end;
data a; set sashelp.class; if AGE<=14 then do; if SEX="남" then SPORTS="축구"; else if SEX="여" then SPORTS="배구"; end; else do; if SEX="남" then SPORTS="농구"; else if SEX="여" then SPORTS="피구"; end; run; |
2.2 반복 Do
- 범위 내에서 반복하여 시행할 때 사용
- do i=초기값 to 마지막값; 문장1; 문장2; ...; end ;
data a; set sashelp.class; do i=11 to 16; if AGE=i then income=i*1000; end; drop i; run; |
2.3 Do Until
- 문장 실행 후 조건을 확인 (최소 1번은 시행)
- do until (조건); 문장1; 문장2; ...; end;
data a; AGE=11; do until (AGE>16); INCOME=AGE*1000; output; AGE+1; end; run; |
2.4 Do While
- 조건부터 묻고 문장 실행
- do while (조건); 문장1; 문장2; ...; end;
data a; AGE=11; do while (AGE<=16); INCOME=AGE*1000; output; AGE+1; end; run; |
3. Select when
- select; when (조건1) 변수=xx; when (조건2) 변수=xx; ...; otherwise 변수=xx; end;
data a; set sashelp.class; select; when (AGE<=12) AGEGRP=1; when (AGE<=14) AGEGRP=2; otherwise AGEGRP=3; end; run; |
이전 포스팅을 보려면 아래 링크 Click
2022.08.27 - [끄적이는 통계분석/SAS] - SAS programming 기초 (Dataset 만들기, 외부데이터 불러오기, proc import, infile 문)
'끄적이는 프로그래밍 > SAS 프로그래밍' 카테고리의 다른 글
SAS programming 기초 (자료의 결합 - 가로 결합) (0) | 2022.08.31 |
---|---|
SAS programming 기초 (자료의 결합 - 세로 결합) (0) | 2022.08.29 |
SAS programming 기초 (Dataset 만들기, 외부데이터 불러오기, proc import, infile 문) (2) | 2022.08.27 |
Mock-up shells(TFLs) 와 통계분석 결과 결합하기 (SAR) (0) | 2022.08.16 |
SAS로 RTF 파일 출력하기 4 (proc sgplot) (0) | 2022.08.11 |