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

【SAS Statement】 KEEP 구문

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

포스팅 목차

    o KEEP 구문

     


    1. 목 적 

    KEEP 구문은 하나 이상의 SAS 출력 데이터 세트에 KEEP 구문에서 지정한 변수만을 출력한다. KEEP 구문은 동일 데이터 스텝에서 생성되는 모든 SAS 데이터에 적용되고, 데이터 스텝 어디서나 사용될 수 있다. KEEP 또는 DROP 구문이 사용되지 않으면, 데이터 스텝에서 생성되는 전체 데이터 세트에 모든 변수가 출력된다.

     


    2. 문 법 


    KEEP
     variable-list;


     

    - variable-list

    출력 데이터 세트에 포함하기 위한 변수의 이름을 지정한다.

     

    Tip : SAS가 허용하는 형태로 변수를 나열하라.

     


    3. 상세 설명 

    KEEP 구문은 하나 이상의 SAS 출력 데이터 세트에 지정된 변수만을 출력한다. KEEP 구문은 동일 데이터 스텝에서 생성되는 모든 SAS 데이터에 적용되고, 데이터 스텝 어디서나 사용 될 수 있다. KEEP 또는 DROP 구문이 사용되지 않으면, 데이터 스텝에서 생성되는 전체 데이터 세트에 모든 변수가 출력된다.

     

    참고 : 동일 데이터 스텝에 KEEP 구문과 DROP 구문을 함께 사용하지 않는 것이 좋다.

     


    4. 비교 사항 

    • SAS PROC 스텝에서는 KEEP 구문을 사용 할 수 없고, 단지 KEEP= 데이터 세트 옵션을 사용 할 수 있다.
    • KEEP 구문은 데이터 문장에 지정된 모든 출력 데이터 세트에 적용된다.
    • 여러 데이터세트에 서로 다른 변수를 작성하기 위하여, KEEP= 데이터 세트 옵션을 사용하라.
    • DROP 구문은 출력 데이터 세트에 출력하지 않을 변수를 지정하는 문장으로 KEEP 구문과 반대 역할을 수행한다.
    • KEEP 구문과 DROP 구문은 출력데이터 세트에 출력하거나 제거하기 위한 변수를 지정한다. 분할 IF 구문(Subsetting IF)은 특정 조건을 만족하는 관측치를 선택한다.
    • RETAIN 구문과 KEEP 구문을 혼동하면 안된다. RETAIN 구문은 SAS가 데이터 스텝의 현재 반복에서 다음 반복까지 변수의 값을 유지하도록 한다. KEEP 구문은 데이터 값에는 영향을 주지 않고, 단지 출력 데이터 세트에 포함되는 변수를 지정한다.

     


    5. 관련 구문 

    구문명 구문내용
    DELETE 구문 현재 실행 중인 관측치에 대한 처리를 중지하여, 출력 데이터에서 관측치를 삭제하여 출력하지 않도록 한다. (관측치 삭제)
    DROP 구문 출력 SAS 데이터 세트에 특정 변수를 제거하여 출력하지 않는다. (변수 삭제)
    IF-THEN/ELSE 구문
    지정한 조건을 만족하는 관측치에 대하여 SAS 문장을 실행한다. (IF 조건문)
    부분 분할 IF 구문 지정된 표현식의 조건을 만족하는 관측치에 대하여 프로그램 처리를 계속 수행한다.
    KEEP 구문
    하나 이상의 SAS 출력 데이터 세트에 KEEP 구문에서 지정한 변수만을 출력한다. (변수 유지)
    RETAIN 구문 INPUT 구문 또는 할당문에 의해 생성된 변수의 값이 데이터 스텝의 반복이 새롭게 시작할 때마다 초기화되는 것(기본 수행 작업)을 방지하여서, 데이터 스텝의 현재 반복에서 다음 반복까지 변수의 값이 유지되도록 한다.
    WHERE 구문 SAS 데이터 세트에서 특정 조건에 해당하는 관측치를 선택한다. (관측치 선택)

     

    • DROP= 데이터 세트 옵션
    • KEEP= 데이터 세트 옵션

     


    6. 예 제 

     

    예제1 : KEEP 구문의 기본 사용방법

    다음 예제는 KEEP 구문에서 올바르게 변수를 나열하는 방법을 보여준다.

     

    SAS Statements
    keep name address city state zip phone;
    
    keep rep1-rep5;

     


    예제2 : 데이터 세트에서 변수 출력하기

    다음 예제는 출력 데이터 세트에 NAME과 AGE 변수를 출력하기 위하여 KEEP 구문을 사용한다. AVG 값을 계산하기 위하여 사용한 SCORE1에서 SCORE20 까지의 변수는 AVERAGE 데이터 세트에 출력되지 않는다.

     

    SAS Statements
    data average;
       keep name avg;
       infile file-specification;
       input name $ score1-score20;
       avg=mean(of score1-score20);
    run;​

     


     


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

     

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

    댓글