포스팅 목차
o IF-THEN/ELSE 구문
1. 목 적
IF-THEN/ELSE 구문은 지정한 조건을 만족하는 관측치에 대하여 SAS 문장을 실행한다. IF-THEN 구문에서 표현식을 평가하여서 참(TRUE) 또는 거짓(False)으로 결괏값을 반환하는데, 영이 아니거나 결측치가 아닌 결과는 표현식을 참(True)으로 처리하고, 영 또는 결측 값의 결과는 표현식을 거짓(False)으로 처리한다.
IF 구문에서 지정된 조건이 참(True)이면, IF-THEN 구문은 데이터 세트에서 읽은 관측치, 외부파일에 존재하는 레코드 또는 계산된 값에 대하여 THEN 절 이후의 SAS 문장을 실행한다. ELSE 구문은 THEN 구문이 실행되지 않은 경우에 대안으로 실행하기 위한 작업을 지정한다.
2. 문 법
IF expression THEN statement ; <ELSE statement;> |
1) expression
SAS 표현식과 필요한 인수를 지정한다.
2) statement
실행하기 위한 SAS 구문이나 DO 그룹을 지정한다.
3. 범 주
SAS 기본 구문 (제어구문)
4. 상세 설명
- IF-THEN 구문에서 표현식을 평가하여서 영이 아니거나, 영이거나, 결측치 중에서 하나의 결과를 생성한다. 영이 아니거나 결측치가 아닌 결과는 표현식을 참(True)으로 처리하고, 영 또는 결측값의 결과는 표현식을 거짓(False)으로 처리한다.
- IF 구문에서 지정된 조건이 참(True)이면, IF-THEN 구문은 데이터 세트에서 읽은 관측치, 외부파일에 존재하는 레코드 또는 계산된 관측치에 대하여 SAS 문장을 실행한다.
- 추가적인 ELSE 구문은 THEN 구문이 실행되지 않았을 경우에 대안으로 실행하기 위한 작업을 지정한다. ELSE 구문은 IF-THEN 구문 바로 뒤에 위치해야 한다.
- IF-THEN 구문이 ELSE 문장을 포함하지 않은 경우에는 모든 IF-THEN 구문을 평가한다. IF-THEN 구문과 ELSE 구문을 함께 사용하면 SAS는 지정된 조건을 처음 만족하는(True) 문장을 만날 때까지 IF-THEN 구문을 실행한다. 이후의 IF-THEN 구문들은 평가되지 않는다.
참고 : | 효율성을 위하여 성공 확률이 감소하는 순서로 IT-THEN/ELSE 구문을 구축하라. |
5. 비교 사항
- 연속적으로 상호 배타적인 조건의 개수가 많은 프로그램을 사용하는 경우에는 IF-THEN 구문보다는 SELECT 구문을 사용하라.
- IF 구문에서 지정된 조건에 해당하는 관측치 또는 레코드만을 처리하기 위해서는 THEN 구문을 사용하지 않는 부분 분할 IF 구문을 사용하라.
6. 관련 구문
구문명 | 구문내용 |
DO 구문 | 그룹 단위로 실행하기 위한 SAS 문장의 그룹을 지정하라. |
DO 반복 구문 | 인덱스 변수의 값에 따라서 DO 구문과 END 구문 사이에 작성한 구문을 반복하여서 실행한다. |
IF-THEN/ELSE 구문 |
지정한 조건을 만족하는 관측치에 대하여 SAS 문장을 실행한다. (IF 조건문) |
SELECT 구문 | 여러 SAS 구문 또는 구문 그룹 중의 하나를 실행한다. (조건문) |
부분 분할 IF 구문 | 지정된 표현식의 조건을 만족하는 관측치에 대하여 프로그램 처리를 계속 수행한다. |
7. 예 제
예제 : IT-THEN/ELSE 구문을 사용하기 위한 다양한 방법
다음 예제는 IT-THEN/ELSE 구문에 대한 다양한 방법을 보여준다.
- 방법1
SAS Statements |
if x then delete;
- 방법2
SAS Statements |
if status='OK' and type=3 then count+1;
- 방법3
SAS Statements |
if age ne agecheck then delete;
- 방법4
SAS Statements |
if x=0 then
if y ne 0 then put 'X ZERO, Y NONZERO';
else put 'X ZERO, Y ZERO';
else put 'X NONZERO';
- 방법5
SAS Statements |
if answer=9 then do;
answer=.;
put 'INVALID ANSWER FOR ' id=;
end;
else do;
answer=answer10;
valid+1;
end;
- 방법6
SAS Statements |
data region;
input city $ 1-30;
if city='New York City'
or city='Miami' then
region='ATLANTIC COAST';
else if city='San Francisco'
or city='Los Angeles' then
region='PACIFIC COAST';
datalines;
...more data lines...
;
[SAS Statement] SAS 데이터 스텝 구문 사전 목록] |
SAS 함수(SAS Function) 리스트 링크 |
반응형
'SAS > SAS 구문사전' 카테고리의 다른 글
【SAS Statement】 INFORMAT 구문 (0) | 2022.02.01 |
---|---|
【SAS Statement】 INFILE 구문 (0) | 2022.02.01 |
【SAS Statement】 IF 구문(부분 분할) (0) | 2022.02.01 |
【SAS Statement】 GO TO 구문 (0) | 2022.02.01 |
【SAS Statement】 FORMAT 구문 (0) | 2022.02.01 |
댓글