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

【SAS Statement】 PUT 구문, List (목록 출력 방식)

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

포스팅 목차

    o PUT 구문, List (목록 출력 방식)

     


    1. 목 적

       PUT 구문, List (목록 출력 방식)은 지정된 출력 라인에 변수의 값과 지정한 문자열을 작성한다. 목록 출력 방식을 사용하기 위해서는 작성하기 위한 변수의 이름을 나열하거나 인용부호 안에 문자열을 지정해야 한다. PUT 구문은 변수의 값을 작성한 후에 단일 공백을 삽입하고 다음 차례의 값을 작성한다. 수치형 변수에 대한 결측치 값은 단일 마침표로 작성되고, 문자형 변수의 값은 필드에서 좌측 정렬 및 앞/뒤의 공백은 제거된다. 개별 값 뒤에 삽입되는 공백 이외에 다수의 공백을 삽입하기 위하여, 목록 출력 방식 대신에 출력 형식 지정 방식 또는 열 출력 방식을 사용해야 한다.

    목록 출력 방식에는 두 가지 형태가 존재한다.

     

    • 단순 목록 출력 방식
    • 수정된 목록 출력 방식

       수정된 목록 출력 방식은 출력형식을 지정하여 변수의 값을 작성하는 방법을 함께 지정할 수 있기 때문에 PUT 구문의 효용성을 증대시킨다.

     


    2. 문 법

    PUT <pointer-control> variable <@ | @@>;
    PUT <pointer-control><n*>'character-string' < @ | @@>;
    PUT <pointer-control> variable <: | ~> format.<@ | @@>;

     

    1) pointer-control

       지정된 라인 또는 열로 출력 포인터를 이동한다.

    참고 : PUT 구문의 포인터 조절자, 포인터 조절자
    주요기능 : 예제2 : 문자열과 변수의 작성하기

     

    2) variable

       작성하기 위한 값을 소유하고 있는 변수를 지정한다.

    주요기능 : 예제1 : 목록 출력 형식을 사용하여 값을 작성하기

     

    3) n*

       바로 다음에 지정한 문자열을 n번 반복하도록 지정한다.

    예제 : 다음 문장은 밑줄을 132 작성한다.

    put 132*'_';

     

    4) 'character-string'

       출력하기 위한 문자열을 인용 부호 안에 작성해야 한다.

    영향 : 전체 텍스트 열을 작성하는 경우에 현재 라인의 공간이 부족하면, SAS 전체 문자열의 출력을 보류하고 먼저 현재 라인을 작성한다. 그리고, 새로운 라인의 번째 열에 나머지 텍스트 열을 작성한다. PUT 구문의 포인터가 라인의 끝을 경유 참조.
    Tip : 올바른 구문 해석을 위하여, PUT 구문에서 인용 부호 이후에 공백을 삽입하라.
    Tip : 인용 부호 바로 뒤에 X 문자가 작성되면, SAS 텍스트 문자열을 16진수 상수로 취급한다.
    Tip : 단일 인용부호 또는 이중 인용 부호를 텍스트 문자열에서 (사이에 공백 없이) 연속적으로 함께 사용하면, 단일 인용부호 또는 이중 인용부호를 단독으로 출력한다.
    관련사항 : 목록 출력 사이의 간격
    주요기능 : 예제2 : 문자열과 변수의 작성하기

     

    5) :

       PUT 구문에서 변수의 값을 작성하기 위하여 사용되는 출력 형식을 함께 지정할 수 있다. 앞뒤의 공백이 모두 제거되고, 개별 값 뒤에 단일 공백이 삽입된다. 출력 형식을 함께 지정해야 한다.

    필요사항 : 출력형식을 지정해야 한다.
    참고 : 수정된 목록 출력 방식과 출력형식 지정 출력 방식
    주요기능 : 예제3 : 수정된 목록 출력 방식(:) 사용하여 작성

     

    6) ~

       PUT 구문이 변수의 값을 출력하기 위하여 사용되는 출력형식을 함께 지정할 수 있다. 출력 형식이 지정된 값이 구분자를 포함하지 않으면 출력되는 값을 인용부호 안에 삽입하여 출력한다. 앞뒤의 공백이 모두 제거되고, 개별 값 뒤에 단일 공백이 삽입된다.

       기본적으로, 문자형 변수의 결측값은 공백(" ")으로 작성되고, 수치형 변수의 결측값은 마침표(".")로 작성된다. FILE 구문에서 DSD 옵션을 함께 지정해야 한다.

    필요사항 : FILE 구문에서 DSD 옵션을 지정해야 한다.
    주요기능 : 예제4 : 수정된 목록 출력방식과 ~ 사용하여 작성하기

     

    7) format.

       데이터 값이 작성되는 경우에 사용되는 출력형식을 지정하라. SAS 출력 형식 또는 사용자 정의 출력 형식을 사용할 수 있다.

    Tip : SAS 출력형식 또는 사용자 정의 출력 형식을 사용 있다.
    주요기능 : 예제3 : 수정된 목록 출력 방식(:) 사용하여 작성

     

    8) @ | @@

       데이터 스텝의 반복수행과정 중에서도 이후 PUT 구문에서 실행하기 위하여 현재 위치에서 출력 라인을 유지한다. 열 고정 지정자는 후행 @ 과 이중 후행 @로 불리고, 후행 @ 또는 이중 후행 @은 PUT 구문에서 마지막 항목으로 작성해야 한다.

    제한사항 : 후행 @ 또는 이중 후행 @ PUT 구문에서 마지막 항목으로 작성해야 한다.
    참고 : PUT 구문에서 행고정지정자(Line-Hold Specifiers) 사용하기참고

     


    3. 범 주

    SAS 기본 구문 (파일 처리 구문)

     


    4. 상세 설명

    목록 출력 방식 사용하기

    목록출력 방식을 사용하기 위하여 작성하기 위한 변수의 이름을 나열하거나 인용부호 안에 문자열을 지정하라. PUT 구문은 변수의 값을 작성 후에 단일 공백을 삽입하고 다음 값을 작성한다. 수치형 변수에 대한 결측치 값은 단일 마침표로 작성된다. 문자형 변수의 값은 필드에서 좌측 정렬되고, 앞뒤의 공백은 제거된다. 다수의 공백을 포함하기 위하여(개별 뒤에 공백 삽입), 목록 출력 방식 대신에 출력형식 지정 방식 또는 출력 방식을 사용하라.

     

    목록 출력 방식에는 가지 형태가 존재한다.

     

    • 단순 목록 출력 방식
    • 수정된 목록 출력 방식

     

    수정된 목록 출력 방식은 변수의 값을 작성하는 방법을 관리하는 출력형식을 함께 지정 있기 때문에 PUT 구문의 융통성을 증대시킨다. “예제3 : 수정된 목록 출력 방식(:) 사용하여 작성참조

     

    목록 출력 사이의 간격

    목록 출력은 변수의 값과 문자열을 작성하는 경우에 다른 출력 방식과 상이한 공백 삽입 처리를 한다. 목록 출력 방식으로 변수를 작성하는 경우에는 SAS 자동적으로 공백을 삽입한다. 출력 포인터는 변수의 바로 2번째 열에 위치한다. 그러나, 문자열이 작성되는 경우에 SAS 공백을 자동적으로 삽입하지 않는다. 출력 포인터는 마지막 문자열 다음 열에 위치한다.

     

    문자열과 변수의 값이 함께 작성하는 경우에 공백 문제를 피하기 위하여, 문자열의 마지막 문자로 공백을 추가하여 사용 있다. 변수의 뒤에 구두점을 포함하는 문자열을 작성하기 원하는 경우에 출력 포인터를 (왼쪽) 다시 이동시킬 필요가 있다. , 출력 포인터를 뒤로 이동시켜서 출력 라인에 원하지 않는 공백을 제거한다. “예제2 : 문자열과 변수의 작성하기참조

     


    5. 비교 사항

    수정된 목록 출력 방식과 출력형식 지정 출력 방식

    목록 출력 방식과 출력형식 지정 출력 방식은 변수의 값을 작성한 이후에 포인터를 얼마나 이동해야 하는지 결정하기 위하여 서로 다른 방법을 사용한다. 그러므로, 출력형식을 사용하는 수정된 목록 출력 방식과 출력형식 지정 출력 방식은 출력 라인에서 서로 다른 결과를 생산한다. 수정된 목록 출력 방식은 값을 작성 후에 공백을 삽입하고, 다음 열로 포인터를 이동한다. 그러나, 출력형식 지정 출력 방식은 값이 비록 지정한 길이보다 적어도 지정된 출력형식의 길이로 포인터를 이동한다. 포인터는 다음 열로 이동하며 중간에 공백은 삽입되지 않는다.

     

    다음 데이터 스텝은 개별 출력 라인을 작성하기 위하여 수정된 목록 출력 방식을 사용한다.

     

    SAS Statements
    data _null_;
       input x y;
       put x : comma10.2 y : 7.2;
       datalines;
    2353.20 7.10
    6231 121
    ;

     

    다음 라인이 로그에 출력된다.

     

    [LOG 출력결과]

    Results
    ----+----1----+----2
    2,353.20 7.10
    6,231.00 121.00

     

    비교를 위하여 다음 예제에서 출력형식 지정 출력 방식을 지정한다. 중간의 공백은 y변수가 출력을 하면서 7 열을 차지하기 때문에 표시된다.

    SAS Statements
    put x comma10.2 y 7.2;

     

    다음 라인은 값이 열을 기준으로 정렬되어서 SAS 로그에 작성된다.

    Results
    ----+----1----+----2
      2,353.20   7.10
      6,231.00 121.00

     


    6. 관련 구문

    구문명 구문함수
    FILE 구문 PUT 구문에서 사용되는 출력 대상 파일의 이름을 지정한다. 
    PUT 구문 가장 최근 FILE 구문에서 지정한 SAS 로그, SAS 출력 윈도우, 또는 외부 파일 등에 출력 라인을 작성한다.
    PUT 구문, 열 출력 방식 출력 라인의 지정된 열에 변숫값을 작성한다.
    PUT 구문, 출력형식 지정 출력방식 출력 라인에 지정된 출력 형식(format)으로 변수의 값을 작성한다
    PUT 구문, 목록 출력 방식 지정된 출력 라인에 변수의 값과 지정한 문자열을 작성한다.
    PUT 구문, 변수이름 지정 출력 방식 "변수명 = " 바로 뒤에 변수 값을 작성한다.
    PUTLOG SAS 로그에 지정한 메시지를 출력한다.

     


    7. 예 제

    예제1 : 목록 출력 형식을 사용하여 값을 작성하기

    다음 데이터 스텝은 SAS 로그에 변수 값을 작성하기 위하여 PUT 구문에서 목록 출력 방식을 사용한다.

     

    SAS Statements
    data _null_;
       input name $ 1-10 sex $ 12 age 15-16;
       put name sex age;
       datalines;
    Joseph     M  13
    Mitchel    M  14
    Sue Ellen  F  11
    ;

     

    다음 라인이 로그에 출력된다.

     

    [LOG 출력결과]

    Results
    ----+----1----+----2----+----3----+----4
    Joseph M 13
    Mitchel M 14
    Sue Ellen F 11

     

    기본적으로 문자형 변수 NAME 값은 필드에서 좌측 정렬된다.

     


    예제2 : 문자열과 변수의 값 작성하기

    다음 PUT 구문은 문자열 뒤에 공백을 추가하고 출력라인의 변수 STARTWGHT 뒤에 원하지 않는 공백이 나오지 않도록 하기 위하여 출력 포인터를 (왼쪽) 이동한다.

     

    SAS Statements
    data _null_;
       input idno name $ startwght;
       put name 'weighs ' startwght +(-1) '.';
       datalines;
    032 David 180
    049 Amelia 145
    219 Alan 210
    ;

     

    다음 라인은 SAS로그에 출력된다.

     

    [LOG 출력결과]

    Results
    David weighs 180.
    Amelia weighs 145.
    Alan weighs 210.

     

    문자열 뒤에 존재하는 공백은 포인터 위치를 변경한다. 공백은 문자열과 바로 뒤의 변수값을 구분한다. +(-1) 포인터 조절자는 STARTWGHT 변수의 값과 마침표 사이에 원하지 않는 공백을 제거하기 위하여 포인터를 뒤로 이동시킨다.

     


    예제3 : 수정된 목록 출력 방식(:)을 사용하여 값 작성

    다음 데이터 스텝은 출력 라인에 일부 변수의 값을 작성하기 위하여 : 인수와 함께 수정된 목록 출력 방식을 사용한다.

     

    SAS Statements
    data _null_;
       input salesrep : $10. tot : comma6. date : date9.;
       put 'Week of ' date : worddate15.
           salesrep : $12. 'sales were '
           tot : dollar9.  + (-1) '.';
       datalines;
    Wong 15,300 12OCT2004
    Hoffman 9,600 12OCT2004
    ;

     

    SAS로그에 다음 라인이 출력된다.

     

    [LOG 출력결과]

    Results
    Week of Oct 12, 2004 Wong sales were $15,300.
    Week of Oct 12, 2004 Hoffman sales were $9,600.

     


    예제4 : 수정된 목록 출력방식과 ~를 사용하여 값 작성하기

    다음 데이터 스텝은 출력 라인에 일부 변수 값을 작성하기 위하여 ~ 인수와 함께 수정된 목록 출력 방식을 사용한다.

     

    SAS Statements
    data _null_;
       input salesrep : $10. tot : comma6. date : date9.;
       file log delimiter=" " dsd;
       put 'Week of ' date ~ worddate15.
           salesrep ~ $12. 'sales were '
           tot ~ dollar9.  + (-1) '.';
       datalines;
    Wong 15,300 12OCT2004
    Hoffman 9,600 12OCT2004
    ;

     

    SAS로그에 다음 라인이 출력된다.

     

    Results
    Week of "Oct 12, 2004" "Wong" sales were "$15,300".
    Week of "Oct 12, 2004" "Hoffman" sales were "$9,600".

     


     


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

     

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

    댓글