본문 바로가기
SAS/SAS 구문사전

【SAS Statement】 IF-THEN/ELSE 구문

by 기서무나구물 2022. 2. 1.

포스팅 목차

    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) 리스트 링크
    반응형

    댓글