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

[SAS Statement] SAS 데이터 스텝 구문 리스트(SAS Data Step Statement)

by 기서무나구물 2023. 9. 30.

포스팅 목차

    [ 데이터 스텝 구문 ]

     

     실행 구문과 선언 구문

    데이터 스텝은 실행 구문과 선언 구문으로 구성된다. 실행 구문은 데이터 스텝의 개별 반복을 통하여 작업 결과를 반환한다. 선언 구문은 SAS에 정보를 제공하고, 시스템이 프로그램 구문을 컴파일 할 때 적용된다.

    다음 테이블은 데이터 스텝에서 사용 할 수 있는 SAS 실행 구문과 선언 구문을 보여준다.

    [실행구문 ]

    ABORT 부분 분할 IF 구문 PUT 구문, 열 출력 방식
    배열 참조 IF-THEN/ELSE PUT 구문, 출력형식 지정 출력방식
    할당 구문 INFILE PUT 구문, 목록 출력 방식
    CALL INPUT PUT 구문, 변수이름 지정 출력 방식
    CONTINUE GO TO PUT
    DECLARE INPUT 구문, 열입력 방식 PUTLOG
    DELETE INPUT 구문, 입력형식 지정 입력방식 REDIRECT
    DESCRIBE INPUT 구문, 목록 입력방식 REMOVE
    DISPLAY INPUT 구문, 변수 이름 지정 입력 방식 REPLACE
    DO LEAVE RETURN
    DO 반복문 LINK SELECT
    DO UNTIL LIST SET
    DO WHILE LOSTCARD STOP
    ERROR MERGE SUM
    EXECUTE MODIFY UPDATE
    FILE NULL OUTPUT

     

    [실행구문 ]

    ARRAY DATALINES4 구문 레이블
    ATTRIB DROP LENGTH
    BY END RENAME
    CARDS FORMAT RETAIN
    CARDS4 INFORMAT WHERE
    DATA KEEP WINDOW
    DATALINES LABEL  

     


     데이터 스텝 구문 범주 구분

    SAS 데이터 스텝은 기능적으로 5개 범주로 구분한다.

    SAS 구문 범주 기능
    작업 * 변수 생성과 수정
    * 데이터 스텝에서 처리하기 위한 특정 관측치 선택
    * 입력 데이터에서 오류 검색
    * 생성된 관측치를 대상으로 작업 수행
    제어 * 특정 관측치에 대한 구문 처리를 생략
    * 구문의 실행 순서 변경
    * 실행을 다른 곳으로 이동
    파일 처리 * 입력 위하여 사용되는 파일 작업* D
    구문에 의하여 작성되는 파일 작업
    정보 * 프로그램 데이터 벡터에 대한 추가 정보 제공
    * 데이터 스텝 또는 생성된 데이터 스텝에 대한 추가 정보 제공
    윈도우(창) 표시 * 사용자 정의 윈도우 정의와 출력

     

    다음 테이블은 범주별로 DATA 스텝 구문을 설명한다.

    * 작업 구문

    SAS 구문 설명
    ABORT 현재 실행중인 데이터 스텝, SAS 작업 또는 SAS 세션의 실행을 중지시킨다.
    할당 구문 표현식을 평가하고, 표현식 결과값을 변수에 저장한다.
    CALL 구문 SAS CALL 루틴(Routine)을 호출한다.
    DELETE 현재 실행중인 관측치에 대한 처리를 중지하여, 출력 데이터에서 
    관측치를 삭제한다. (출력하지 않는다.)
    DESCRIBE 컴파일 되어 저장된 데이터 세트 프로그램 또는 데이터 스텝 
    뷰(View)에 대한 소스 코드를 확인한다.
    ERROR 구문 내부 변수 _ERROR_을 1로 설정하라. 옵션으로 SAS로그에 메시지를
     작성한다.
    EXECUTE 컴파일 되어 저장된 데이터 스텝 프로그램을 실행한다.
    부분 분할 IF 구문 지정된 표현식의 조건을 만족하는 관측치에 대하여 처리를 계속 수행한다.
    LIST INPUT 구문에서 처리되는 입력 데이터 레코드를 확인하기 위하여
     SAS 로그에 출력한다.
    LOSTCARD 하나의 관측치가 여러 레코드에 존재하는 데이터에서 결측치 또는
     유효하지 않은 레코드를 만났을 때 입력 상태를 재동기화한다.
    NULL 데이터 라인의 종료를 알리는 위치표시자 이다.
    OUTPUT SAS 데이터세트에 현재 관측치를 작성한다.
    PUTLOG SAS로그에 메시지를 출력한다.
    REDIRECT 저장된 프로그램을 실행하는 경우에 사용하기 원하는 입력 또는
     출력 SAS 데이터세트를 지정한다.
    REMOVE SAS 데이터세트에서 관측치를 삭제한다
    REPLACE 추가적으로 새로운 SAS 데이터 세트를 생성하지 않고 기존에
     존재하는 SAS 데이터 세트에 존재하는 관측치를 대체(갱신)한다.
    STOP 현재 데이터 스텝의 실행을 중지한다.
    SUM 누적(Accumulator) 변수에 표현식의 결과값을 더한다.
    WHERE SAS 데이터 세트에서 특정 조건에 해당하는 관측치를 선택한다.

     


    * 제어 구문

    SAS 구문 설명
    CONTINUE 현재 관측치에 대한 DO 반복문 처리를 멈추고, 다음 관측치에 대한
     반복 처리를 계속해서 다시 진행한다.
    DO 구문 그룹 단위로 실행되는 문장의 그룹을 지정하라.
    DO 반복문 인덱스 변수의 값에 따라서 반복적으로 DO 구문과 END 구문 사이의
     구문을 실행한다.
    DO UNTIL 조건식이 참이 될 때까지 반복적으로 DO 반복문 안의 문장을 실행한다.
    DO WHILE 조건식이 참일 동안에 반복적으로 DO 반복문 안의 문장을 실행한다.
    END DO 그룹 또는 SELECT 그룹 표현식의 종료를 표시한다.
    GO TO Label 인수에서 지정된 LABEL 구문으로 프로그램 실행을 이동하여서
     계속 처리하고, 만약 LABEL 구문 뒷부분에 RETURN 구문이 실행되면
     데이터 스텝의 처음 부분으로 실행을 반환한다.
    IF-THEN/ELSE 지정한 조건을 만족하는 관측치에 대하여 SAS문장을 실행한다.
    구문 레이블 GOTO 구문이나 LINK 구문 등의 다른 구문에 의해 참조되는 구문의
     위치를 표시한다.
    LEAVE 현재 반복문의 처리를 중지하고, 반복문 바로 다음에 위치하는 문장을 계속 실행한다.
    LINK 프로그램 실행이 지정된 구문 레이블로 바로 이동하여 일련의 
    SAS 문장을 실행한다. 만약 구문 레이블 뒤에 RETURN 구문이
     존재하면, LINK 구문 바로 뒤의 문장으로 프로그램 실행을 다시 반환한다.
    RETURN 데이터 스텝의 현재 위치에서 SAS 문장의 실행을 중지하고, 데이터
     스텝에서 사전에 정의된 위치로 프로세스의 실행을 이동한다.
    SELECT 여러 SAS 구문 또는 구문 그룹 중에 하나를 실행한다.

     


    * 파일 처리 구문

    SAS 구문 설명
    BY 데이터 세트에서 SET, MERGE, UPDATE 구문의 작업 방식을 관리하고, 특별한 그룹화 변수를 설정한다.
    CARDS 데이터 입력 라인을 선언한다.
    CARDS4 세미콜론(;)이 포함된 데이터 입력 라인을 선언한다.
    DATA DATA 스텝의 시작을 선언하고, 출력 SAS DATA 세트, 뷰(View), 프로그램의 이름을 설정한다.
    DATALINES 데이터 라인의 시작을 선언한다.
    DATALINES4 세미콜론이 포함된 데이터 라인의 시작을 알린다.
    FILE PUT 구문에 대한 출력물 파일을 지정한다.
    INFILE INPUT 구문을 사용하여 읽기 위한 외부 파일을 지정한다.
    INPUT 입력 데이터 레코드에서 관측치 값을 변수로 읽기 위한 방법을 정의하고, 해당 SAS변수에 입력값을 할당한다.
    INPUT 구문, 열입력 방식 지정된 열에서 입력 값을 읽어서 대응되는 SAS 변수에 값을 할당한다.
    INPUT 구문, 입력형식 지정 입력방식 지정된 입력형식(Informat)으로 입력값을 읽어서 해당하는 SAS 변수에 할당한다.
    INPUT 구문, 목록 입력방식 입력 데이터 데이터를 검색하여서 해당하는 SAS변수에 할당한다.
    INPUT 구문, 변수 이름 지정 입력 방식 “변수이름 = “ 뒤에 존재하는 데이터 값을 읽어서 해당 SAS변수에 할당한다.
    MERGE 두 개 이상의 SAS 데이터세트의 관측치를 하나의 관측치로 결합하여 새로운 SAS 데이터 세트를 생성한다.
    MODIFY 새로운 SAS 데이터 세트를 추가로 생성하지 않고 기존에 존재하는 SAS 데이터 세트의 관측치에 대하여 대체, 삭제, 추가 작업을 수행한다.
    PUT 가장 최근 FILE 구문에서 지정된 SAS 로그, SAS 출력윈도우, 또는 외부파일 등에 출력 라인을 작성한다.
    PUT 구문, 열 출력 방식 출력 라인의 지정된 열에 변수값을 작성한다.
    PUT 구문, 출력형식 지정 출력방식 출력 라인에 지정된 출력형식(format)으로 변수의 값을 작성한다.
    PUT 구문, 목록 출력 방식 지정된 출력 라인에 변수의 값과 지정한 문자열을 작성한다.
    PUT 구문, 변수이름 지정 출력 방식 "변수명 = " 바로 뒤에 변수 값을 작성한다.
    SET 하나 이상의 SAS데이터 세트에서 관측치를 읽는다.
    UPDATE Transactions 파일에서 Master 파일을 변경하기 위한 내용을 사용하여 Master 파일에 대하여 갱신(Update) 또는 삽입(Insert) 작업을 수행한다.

     


    * 정보 구문

    SAS 구문 설명
    ARRAY 배열의 원소를 정의한다.
    배열 참조 처리하기 위한 배열의 원소를 참조하기 위한 방법을 지정한다.
    ATTRIB 다수의 변수에 대한 출력형식(format), 입력형식(informat), 
    라벨(Label), 길이(Length)를 지정한다.
    DROP 출력 SAS 데이터 세트에 특정 변수를 제거한다.(출력하지 않는다.)
    FORMAT 변수에 출력형식(format)을 지정한다.
    INFORMAT 변수에 대한 입력형식(Informat)을 지정한다.
    KEEP 출력 데이터 세트에 포함되는 변수를 지정한다.
    LABEL 변수에 대한 설명 레이블을 지정한다.
    LENGTH 변수를 저장하기 위하여 사용되는 변수의 길이(byte의 수)를 지정한다.
    MISSING 입력데이터에서 수치형 데이터의 특별한 결측치 값을 
    표현하기 위한 문자를 지정한다.
    RENAME 출력 SAS 데이터 세트에서 변수에 새로운 이름을 지정한다.
    RETAIN INPUT 구문 또는 할당문에 의해 생성된 변수의 값이 데이터 스텝의  반복이 새롭게 시작 할 때마다 초기화되는 것(기본 수행 작업)을  방지하여서, 데이터 스텝의 현재 반복에서 다음 반복까지 변수의  값이 유지되도록 한다.

     


    [ 전역 구문 ]

     정의

    전역 구문은 일반적으로 SAS 정보를 제공, 정보 또는 데이터 요청, 서로 상이한 실행 모드 사이의 이동, 시스템 옵션의 값 설정 등의 역할을 수행한다. SAS 프로그램 어디서나 전역 구문을 사용 할 수 있다. 전역 구문은 실행문이 아니며, 프로그램 구문 컴파일 시점에 적용된다.

     

     전역 구문 범주 구분

    SAS 전역 구문은 기능적으로 3개 범주로 구분한다.

    SAS 구문 범주 기능
    데이터 접근 SAS 라이브러리, SAS 카탈로그, 외부파일 와 출력 장치 등의 참조 이름을 정의하고, REMOTE  파일에 접근 
    LOG 제어 SAS log의 출력 방식을 변경
    운영 환경 직접적으로 운영 환경 접근
    출력 제어 SAS OUTPUT에 제목과 각주를 추가. 다양한 형태의 출력물 제어
    프로그램 제어 SAS 프로그램 처리 방법을 제어

     


    * 데이터 접근 구문

    SAS 구문 설명
    CATNAME 다수의 카탈로그를 카탈로그 참조자(catref)를 사용하여 논리적으로 하나의 카탈로그로 결합한다.
    FILENAME SAS 파일참조자(fileref)를 외부파일 또는 출력 디바이스와
     연결한다. 파일참조자(Fileref)와 외부파일의 관계를 해제 및 외부 파일 속성을 출력한다.
    FILENAME 구문, CATALOG 접근 방법 외부 파일을 참조하는 것과 유사하게 SAS 카탈로그를 
    참조하도록 한다.
    FILENAME 구문, CLIPBOARD 접근 방법 HOST 컴퓨터의 클립보드로부터 텍스트 데이터를 읽고, 
    반대로 클립보드에 텍스트 데이터를 작성 할 수 있다.
    FILENAME 구문, EMAIL(SMTP) 접근 방법 간이 전자 우편 전송 프로토콜
    (Simple Mail Transfer Protocol, SMTP) 이메일 인터페이스를
     사용하여 SAS 프로그래밍 구문에서 전자 메일을 보낼 수 있다.
    FILENAME 구문, FTP 접근 방법 FTP protocol을 사용하여 remote 파일에 접근 할 수 있다.
    FILENAME 구문, SFTP 접근 방법 SFTP protocol을 사용하여 remote 파일에 접근 할 수 있다.
    FILENAME 구문, SOCKET 접근 방법 TCP/IP soket에 접근하여 데이터를 읽고 쓸 수 있도록 한다.
    FILENAME 구문, URL 접근 방법 URL 접근 방법을 사용하여 remote 파일에 접근 할 수 있다.
    FILENAME 구문, WebDAV 접근 방법 WebDAV 프로토콜을 사용하여 remote 파일에 접근 할 수 있다.
    LIBNAME SAS 라이브러리에 라이브러리 참조자(libref-단축이름)를
    할당하거나 해제한다. 

     


    * LOG 제어 구문

    SAS 구문 설명
    주석 구문 SAS 문장 또는 프로그램에 대한 주석을 작성한다.
    PAGE SAS 로그에서 새로운 페이지로 이동하도록 지시한다.
    SKIP SAS 로그에 공백 라인을 추가한다.

     


    * 운영 환경 구문

    SAS 구문 설명
    X 구문 SAS세션안에서 운영 환경 명령어를 실행한다.

     


    * 출력 제어 구문

    SAS 구문 설명
    FOOTNOTE 프로시져와 데이터 스텝 출력물의 하단에 10개 텍스트 라인(각주)을 작성한다.
    TITLE SAS 출력에 대한 제목(TITLE)을 지정한다.

     


    * 프로그램 제어 구문

    SAS 구문 설명
    CHECKPOINT EXECUTE_ALWAYS 검사점 재시동 데이터 고려하지 않고, 이 구문 바로 뒤의 DATA 스텝 또는 PROC 스텝을 실행하도록 한다.
    DM 구문 SAS 문장처럼 SAS 프로그램 에디터, LOG, 프로시져 출력물 또는 텍스트 에디터에 대한 명령어를 실행한다.
    ENDSAS 현재 DATA 또는 PROC 스텝 실행 후에 SAS JOB 또는 세션을 종료한다.
    %INCLUDE 현재 실행중인 SAS 프로그램으로 다른 SAS 프로그래밍 문장, 데이터 라인 또는 양쪽 모두를 호출하여 실행한다.
    %LIST 현재 세션에서 입력되는 라인을 출력한다.
    LOCK 존재하는 SAS 파일에 배타적 잠금 상태를 부여하거나 해제한다.
    OPTIONS 다수의 SAS 시스템 옵션의 값을 지정 또는 변경한다.
    RUN 이전에 입력된 SAS 문장을 실행한다.
    %RUN %INCLUDE * 구문 이후의 소스 문장을 종료한다.
    SASFILE SAS 데이터 세트를 열고, 메모리에서 전체 파일을 유지하기 위하여 충분한 버퍼를 할당한다.

     


    반응형

    댓글