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

【SAS Statement】 INPUT 구문, Column (열입력방식)

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

포스팅 목차

    o INPUT 구문, Column (열입력방식)

     


    1. 목 적

       INPUT 구문, 열(Column) 입력방식은 지정된 열에서 입력 값을 읽어서 대응되는 SAS 변수에 값을 할당한다.

     


    2. 문 법


    INPUT
     variable <$> start-column <-end-column> < .decimals> <@ | @@>;


     


    3. 구문설명

     

    1) Variable

       입력 값이 할당되는 변수를 지정한다.

     

    2) $

       문자형 변수를 지정한다.

     

    Tip : 변수가 이전에 문자로 정의되었으면 $ 지정 필요가 없다.

     

    3) Start-column

       읽기 위한 값이 위치하고 있는 입력 레코드의 첫 번째 열을 지정한다.

     

    4) -end-column

       읽기 위한 값이 포함되어 있는 입력 레코드의 마지막 열을 지정한다. 변수의 값이 단지 1개 열에 위치하면, end-column은 생략할 수 있다.

     

    Tip : 변수가 단지 1 열을 차지하면, end-column 생략 가능하다.
    예제 : end-column 생략되었기 때문에, 문자형 변수 GENDER 대한 값을 16열에서만 읽는다.

    input name $ 1-10 pulse 11-13 waist 14-15 gender $ 16;

     

    5) .decimals

       입력 값에 소수점 부분이 명시적으로 포함되어 있지 않으면, 소수점의 오른쪽 부분에 대한 자리수를 지정한다. 입력 값에 소수점이 명시적으로 지정되어 있는 경우, 이 소수점은 INPUT 구문에서 지정된 소수점보다 우선한다.

     

    Tip : 입력 값에서 명시적으로 지정되어 있는 소수점은 INPUT 구문의 소수점 지정자를 무시한다.
    예제 : 다음 INPUT 구문은 2자리 소수점 자리수를 사용하여 입력 데이터의 수치형 변수를 읽는다.
    입력 데이터 SAS 구문 결과
    ----+---1    
    2314 input number 1-5 .2; 23.14
    2   .02
    400   4.00
    -140   -1.40
    12.234   12.234
    *
    12.2   12.2
    *
    * INPUT 구문에서 사용되는 소수점 지정자는 입력 데이터 값에 지정된 명시적 소수점에 의하여 적용되지 않는다.

     

    6) @

       데이터 스텝의 동일 반복 내에서 다음 차례의 INPUT 구문의 실행을 위하여 입력 레코드를 유지한다. 이 행고정 지정자는 후행 @로 불린다. 후행 @는 다음 차례의 INPUT 구문이 자동적으로 현재 입력 레코드에 대한 고정을 해제하고 다음 차례의 레코드를 입력 버퍼로 읽는 것을 제한한다. 동일한 레코드를 여러 번 읽을 필요가 있는 경우에 유용하다.

     

    제한사항 : 후행 @ INPUT 구문에서 마지막 항목으로 작성해야 한다.
    Tip : 후행 @ 다음 차례의 INPUT 구문이 자동적으로 현재 입력 레코드에 대한 고정을 해제하고 다음 차례의 레코드를 입력 버퍼로 읽는 것을 방지한다. 레코드를 여러 읽을 필요가 있는 경우에 유용하다.
    참조 : INPUT 구문에서 포인터 조절자참조

     

    7) @@

       데이터 스텝의 반복수행과정 중에서 다음 반복 과정의 INPUT 구문 실행을 위하여 현재 입력 레코드를 유지한다. 이 행고정지정자를 후행 @@라고 한다. 개별 입력 라인에 다수의 관측치 값을 소유하고 있는 경우에 유용하다.

     

    제한사항 : 이중 후행 @ INPUT 구문에서 마지막 항목으로 작성해야 한다.
    Tip : 개별 입력 라인이 다수의 관측치 값을 소유하고 있는 경우에 이중 후행 @ 유용하다.
    참조 : INPUT 구문에서 행고정 지정자 사용하기참조

     


    4. 범 주

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

     


    5. 상세 설명

     열입력 방식 사용 시기

    INPUT 구문에서 변수 이름 뒤에 관측값에 대한 열번호를 작성한다. 열입력 방식을 사용하여 데이터를 읽기 위하여, 데이터는 다음 조건을 충족해야 한다.

    • 모든 입력 데이터 레코드에서 같은 열에 있어야 한다.
    • 표준 숫자 형태와 문자 형태

     

    열입력 방식의 유용한 기능은 다음과 같다.

    • 공백이 중간에 포함된 문자값을 읽을 수 있다.
    • 문자값은 1~32,767 문자 길이를 사용 할 수 있다.
    • 입력값은 레코드에서 위치에 상관없이 임의의 순서로 읽을 수 있다.
    • 값 또는 값의 일부를 반복해서 읽을 수 있다. 예를 들어, 다음 INPUT 구문은 10~15열에서ID를 읽고, 다시 13열에서 GROUP변수를 읽을 수 있다.
    input id 10-15 group 13;
    • 필드 내에서 앞뒤의 공백은 모두 무시된다. 그러므로, 만약 숫자 값이 영을 표시하는 공백을 포함하거나 문자 값에서 앞뒤 공백을 유지하는 것을 원하면, informat을 사용하여 값을 읽어라.

     


    결측치 값

    결측치 값은 특별한 형식을 필요로 하지 않는다. INPUT 구문은 공백 필드를 결측치로 해석하여서 다른 값들을 정확하게 읽는다. 숫자 또는 문자 필드가 단일 마침표를 포함하고 있으면, 변수값은 결측치로 설정된다.

     

    데이터 라인 읽기

    SAS 80 열의 배수 단위의 고정된 길이로 DATALINES 구문(내부 데이터) 뒤의 데이터 레코드를 처리한다. CARDIMAGE 시스템 옵션은 80번째 열을 지나는 데이터를 계속 읽거나 자를지 여부를 정의한다. (프로그램편집기 에서)

     

    가변길이 레코드(Variable-length Records) 읽기 XE "가변길이 레코드:INPUT 구문, 열입력 방식"

    기본적으로, 가변길이 데이터 레코드를 읽기 위하여 FLOWOVER 옵션을 사용한다. 레코드가 기대하는 것보다 적은 값을 포함하고 있으면, INPUT 구문은 다음 데이터 레코드에서 추가적으로 값을 읽는다. 가변길이 데이터를 읽기 위하여, INFILE 구문에서 TRUNCOVER 옵션을 사용 수도 있다. TRUNCOVER 옵션은 레코드에 고정된 길이에 대하여 부족한 부분을 공백으로 채우는 PAD옵션보다 효율적이다. 상세 정보는 INFILE 구문에서 라인의 끝을 경유하여 읽기 참고하라.

     


    6. 관련 구문

    함수명 함수내용
    ARRAY 구문 배열에서 사용하기 위한 배열 원소를 정의한다. 
    ATTRIB 구문 ATTRIB 구문을 사용하여 여러 변수에 대한 출력 형식(format), 입력 형식(informat), 라벨(Label), 길이(Length) 등을 한 번에 처리할 수 있다.
    FORMAT 구문 변수에 영구적으로 출력 형식(format)을 지정하여서 SAS 데이터 세트의 기술정보 (Descriptor information)를 수정한다.
    INFILE 구문 INPUT 구문을 사용하여 읽기 위한 외부 파일을 지정한다.
    INFORMAT 구문 변수에 영구적으로 입력 형식(Informat)을 지정한다. 
    INPUT 구문 입력 데이터 레코드에서 관측치 값을 변수로 읽으려는 방법을 정의하고, 입력값을 해당 SAS 변수에 할당한다. 외부 파일 또는 내부 데이터에서 원시 데이터를 읽기 위하여 INPUT 구문을 사용한다. 
    INPUT 구문, 열입력 방식 지정된 열에서 입력 값을 읽어서 대응되는 SAS 변수에 값을 할당한다.
    INPUT 구문, 입력형식 지정 입력 방식 지정된 입력 형식(Informat)으로 입력값을 읽어서 해당하는 SAS 변수에 할당한다.
    INPUT 구문(목록 입력방식) 입력 데이터를 검색하여서 해당하는 SAS 변수에 할당한다.
    INPUT 구문, 변수 이름 지정 입력 방식 “변수이름 = “ 뒤에 존재하는 데이터 값을 읽어서 해당 SAS 변수에 할당한다.
    LABEL 구문 변수에 대한 설명 레이블을 지정한다.
    LENGTH 구문 변수를 저장하기 위하여 사용되는 변수의 길이(byte의 수)를 지정한다. 

     


    7. 예 제

    다음 예제는 열입력 방식을 사용하여 입력 데이터 레코드를 읽는 방법을 설명한다.

    SAS Statements
    data scores;
       input name $ 1-18 score1 25-27 score2 30-32
             score3 35-37;
       datalines;
    Joseph                  11   32   76
    Mitchel                 13   29   82
    Sue Ellen               14   27   74
    ;

     


     


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

     

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

    댓글