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

【SAS Statement】 PUTLOG 구문

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

포스팅 목차

    o PUTLOG 구문

     


    1. 목 적

       PUTLOG 구문은 SAS 로그에 지정한 메시지를 출력한다. PUTLOG 구문은 현재 파일 대상(destinations)에 영향 없이 SAS 로그에 출력할 수 있기 때문에, 매크로 작업에 대한 중간 결과 확인 시 유용하다.

     

    2. 문 법


    PUTLOG 
    'message';


     

    1) message

       SAS 로그에 작성하기 원하는 메시지를 지정한다. 메시지에는 문자 상수(인용부호로 묶인 문자들), 변수 이름, 출력형식(Format), 포인터 조절자 등을 지정할 수 있다. 로그에서 출력물에 대한 내용을 쉽게 확인할 수 있도록 메시지 앞에 WARNING, MESSAGE, NOTE 문자를 삽입 할 수 있다.

    Tip : 로그에서 출력물에 대한 식별을 쉽게 하기 위하여 메시지 앞에 WARNING, MESSAGE, NOTE 문자를 삽입 있다.

     

    3. 범 주

    SAS 기본 구문 (실행 구문)

     

    4. 상세 설명

    PUTLOG 구문은 SAS 로그에 지정한 메시지를 작성한다. PUTLOG 구문은 현재 파일 대상(destinations) 영향 없이 SAS 로그에 출력물을 보낼 있기 때문에, 매크로 사용시에 유용하다.

     

    5. 비교 사항

    • PUTLOG 구문은 ERROR 구문과 유사하지만, PUTLOG 구문은 _ERROR_을 1로 설정하지 않는다.

     


    6. 관련 구문

    구문명 구문함수
    ERROR 구문 SAS 내부적으로 에러 상태를 관리하는 내부 변수 _ERROR_ 을 1로 설정하고, 로그에 해당 관측치에 대한 내용(변수 이름, 관측치, 관측치 번호 등)을 작성한다.
    PUT 구문 가장 최근 FILE 구문에서 지정한 SAS 로그, SAS 출력 윈도우, 또는 외부 파일 등에 출력 라인을 작성한다.
    PUTLOG SAS 로그에 지정한 메시지를 출력한다.

     


    7. 예 제

     

    예제1 : PUTLOG 구문을 사용하여 SAS 로그에 메시지 작성하기

    다음 프로그램은 평균 SCORE 계산하고, 입력데이터를 평가하는 computeAverage92 매크로를 생성하고, 매크로에서 에러메시지를 SAS로그에 작성하기 위하여 PUTLOG 구문을 사용한다. 로그에 경고메시지를 작성하기 위하여 DATA 스텝에서 PUTLOG 구문을 사용한다.

     

    data ExamScores;
       input Name $ 1-16 Score1 Score2 Score3;
       datalines;
    Sullivan, James   86 92 88
    Martinez, Maria   95 91 92
    Guzik, Eugene     99 98 .
    Schultz, John     90 87 93
    van Dyke, Sylvia  98 . 91
    Tan, Carol        93 85 85
    ;
     
    options pageno=1 nodate linesize=80 pagesize=60; 
    filename outfile 'your-output-file';
     
       /* 에러 메시지를 SAS 로그에 출력하기 위하여 PUTLOG 사용  */
    %macro computeAverage92(s1, s2, s3, avg);
       if &s1 < 0 or &s2 < 0 or &s3 < 0 then
          do;
                    putlog 'ERROR: Invalid score data ' &s1= &s2= &s3=;
             &avg = .;
                 end;
              else
                 &avg = mean(&s1, &s2, &s3);
    %mend;
     
    data _null_;
    set ExamScores;
       file outfile;
       %computeAverage92(Score1, Score2, Score3, AverageScore);
       put name Score1 Score2 Score3 AverageScore;
     
          /* SAS 로그에 경고 메시지를 작성하기 위하여 PUTLOG 사용 */
       if AverageScore < 92 then
             putlog 'WARNING: Score below the minimum ' name= AverageScore= 5.2;
    run;
     
    proc print;
    run;

    프로그램은 SAS 로그에 다음 라인을 출력한다.

    WARNING: Score below the minimum Name=Sullivan, James AverageScore=88.67
    ERROR: Invalid score data Score1=99 Score2=98 Score3=.
    WARNING: Score below the minimum Name=Guzik, Eugene AverageScore=.
    WARNING: Score below the minimum Name=Schultz, John AverageScore=90.00
    ERROR: Invalid score data Score1=98 Score2=. Score3=91
    WARNING: Score below the minimum Name=van Dyke, Sylvia AverageScore=.
    WARNING: Score below the minimum Name=Tan, Carol AverageScore=87.67

     


     


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

     

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

    댓글