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

【SAS Statement】 GO TO 구문

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

포스팅 목차

    o GO TO 구문

     


    1. 목 적 

    GO TO 구문은 label 인수에서 지정된 LABEL 구문으로 프로그램을 이동하여서 계속 처리한다. 만약 LABEL 구문 뒷부분에서 RETURN 구문이 실행되면 데이터 스텝의 처음 부분으로 실행을 반환한다. GO TO 구문은 DO-END 구문과 IF-THEN/ELSE 구문 등을 사용하여 프로그램을 대체할 수도 있다.

     

    2. 문 법 


    GO
     TO label;


     

    • label

    GO TO 구문에서 지정한 목적지를 식별하기 위한 구문 라벨을 지정한다. 

     

    3.범 주

    SAS 기본 구문 (제어 구문)

     

    4.비교 사항

    • GO TO 구문과 LINK 구문은 기능상 매우 유사하다. 그러나, LABEL 구문(목적지)에서 GO TO 구문은 RETURN 구문 없이 사용 가능하지만, LINK 구문은 일반적으로 RETURN 구문과 함께 사용된다. GO TO 구문과 LINK 구문은 지정한 LABEL 구문으로 이동하여 프로그램을 실행한 후에, 하단에 존재하는 RETURN 구문에 대한 처리 과정에서 서로 다른 작업을 수행한다. LINK 구문과 함께 사용되는 RETURN 구문은 프로그램 실행을 LINK 구문 바로 뒤의 SAS 구문으로 반환하고, GO TO 구문과 함께 사용되는 RETURN 구문은 프로그램 실행을 데이터 스텝의 시작으로 반환한다. (GO TO 구문에 대한 규칙은 LINK 구문이 GO TO 구문 앞에 선행하지 않는 경우에 적용된다. 만약 선행하는 경우에는 실행은 LINK 구문 바로 뒤의 SAS구문으로 이동하여 계속 실행한다.)
    • GO TO 구문에 대한 로직은 DO-END 구문과 IF-THEN/ELSE 구문을 사용하여 프로그램을 대체 할 수 있다.

     


    5.관련 구문

    구문명 구문내용
    ARRAY 구문 배열에서 사용하기 위한 배열 원소를 정의한다.
    배열 참조 구문 배열 구문에서 정의한 배열의 원소를 처리하기 위하여 참조하는 방법을 지정한다.
    구문 레이블 GOTO 구문이나 LINK 구문 등의 다른 구문에 의해 참조되는 구문의 위치를 표시한다.
    DO 구문 그룹 단위로 실행하기 위한 SAS 문장의 그룹을 지정하라.
    DO 반복 구문 인덱스 변수의 값에 따라서 DO 구문과 END 구문 사이에 작성한 구문을 반복하여서 실행한다.
    DO UNTIL 구문 지정한 조건식이 참이 될 때까지 반복적으로 DO 반복문 안의 문장을 실행한다.
    DO WHILE 구문 지정한 조건식이 참일 동안에 반복적으로 DO 반복문 안의 문장을 실행한다.
    GO TO 구문 label 인수에서 지정된 LABEL 구문으로 프로그램을 이동하여서 계속 처리한다.
    LINK 구문 프로그램 실행이 지정된 구문 레이블로 바로 이동하여 일련의 SAS 문장을 실행한다.
    RETURN 구문 데이터 스텝의 현재 위치에서 SAS 문장의 실행을 중지하고, 데이터 스텝에서 사전에 정의된 위치로 프로세스의 실행을 이동한다.

     


    6.예 제

     

    SAS Statements
    data back;
    input gender $ score;
    cards;
    남자 100
    여자 90
    남자 85
    남자 70
    여자 65
    ;
    
    data back2;
         retain cum_scr 0;
     set back;
         IF gender = '여자' THEN go to A;
    
         cum_scr=cum_scr+score;
         return; 
    
         A:
           cum_scr=cum_scr;
         RETURN;
    RUN;

     


    예제 : GO TO 구문과 RETURN 구문을 함께 사용하기

    아래 예제처럼 GO TO 구문을 사용하라.

     

    • 아래 예제에서 만약 조건이 참이라면, GO TO 구문은 ADD 라벨로 SAS 실행을 이동시켜서, 거기서부터 작업을 계속 실행한다. 만약 조건이 거짓이라면, SAS는 PUT 구문과 GO TO 라벨과 연관된 문장을 실행한다.
    SAS Statements
    data info;  
       input x;
       if 1<=x<=5 then go to add;
       put x=;
       add: sumx+x;
       datalines;
    7
    6
    323
    ;

     

    모든 데이터 스텝은 스텝의 마지막 하단에 묵시적인 RETURN 구문을 포함하고 있기 때문에, SUM 구문이 실행된 후에 프로그램 실행은 스텝의 처음으로 반환된다. 그러므로, 데이터 스텝의 마지막 부분에 명시적은 RETURN 구문을 작성할 필요는 없다.

     

    • 만약 조건에 해당하지 않은 관측치에 대하여 SUM 구문을 실행시킬 필요가 없으면, 명시적인 RETURN 구문을 작성하여 코드를 수정하라.
    SAS Statements
    data info;
       input x;
       if 1<=x<=5 then go to add;
       put x=;
       return;   
          /* x<1 이거나 x>5 면           */
          /* SUM 구문은 실행되지 않는다. */
       add: sumx+x;
       datalines;
    7
    6
    323
    ;

     


     


    [SAS Statement] SAS 데이터 스텝 구문 사전 목록]

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    댓글