Sas에서 retain 문을 사용하는 방법(예제 포함)


SAS에서 RETAIN 문을 사용하여 DATA 단계의 각 반복 시작 시 값이 누락으로 설정되어서는 안 되는 변수를 지정할 수 있습니다.

RETAIN 문은 SAS의 다양한 작업에 사용될 수 있지만 가장 일반적인 세 가지 사용 사례는 다음과 같습니다.

사례 1: RETAIN을 사용하여 누적 합계 계산

 data new_data;
    set original_data;
    retain cum_sum;
    cum_sum + values_variable;
run ;

사례 2: RETAIN을 사용하여 그룹당 누적 합계 계산

 data new_data;
    set original_data;
    by grouping_variable
    retain cum_sum_by_group;
    if first.grouping_variable then cum_sum_by_group = values_variable;
    else cum_sum_by_group = cum_sum_by_group + values_variable;
run ;

사례 3: RETAIN을 사용하여 그룹당 누적 개수 계산

 data new_data;
    set original_data;
    by grouping_variable
    retain count_by_group;
    if first.grouping_variable then count_by_group = 1 ;
    else count_by_group = count_by_group + 1 ;
run ;

다음 예는 여러 매장에서 연속적으로 발생한 매출을 보여주는 SAS의 다음 데이터 세트와 함께 각 사례를 실제로 사용하는 방법을 보여줍니다.

 /*create dataset*/
data original_data;
    input store $sales;
    datalines ;
At 4
AT 5
At 2
B 6
B 3
B5
C 3
C 8
C 6
;
run ;

/*view dataset*/
proc print data = original_data; 

예 1: RETAIN을 사용하여 누계 계산

다음 코드는 RETAIN 문을 사용하여 누적 매출 합계를 표시하는 데이터 세트에 새 열을 생성하는 방법을 보여줍니다.

 /*calculate cumulative sum of sales*/
data new_data;
    set original_data;
    retain cum_sales;
    cum_sales+sales;
run ;

/*view results*/
proc print data = new_data;

cum_sales 라는 새 열에는 sales 열 값의 누적 합계가 포함됩니다.

예를 들어:

  • 1행의 누적 합계: 4
  • 2행의 누적합: 4 + 5 = 9
  • 3행의 누적합: 4 + 5 + 2 = 11

등등.

이 예에서 RETAIN 문은 cum_sales 라는 변수를 0으로 설정한 다음 DATA 단계를 반복할 때마다 누적 합계 cum_sales 에 새 판매액 값을 추가하기만 하면 됩니다.

예 2: RETAIN을 사용하여 그룹당 누적 합계 계산

다음 코드는 RETAIN 문을 사용하여 매장별 누적 매출 합계를 표시하는 데이터 세트에 새 열을 생성하는 방법을 보여줍니다.

 /*calculate cumulative sum of sales by store*/
data new_data;
    set original_data;
    by store;
    retain cum_sales_by_store;
    if first.store then cum_sales_by_store = sales;
    else cum_sales_by_store = cum_sales_by_store + sales;
run ;

/*view results*/
proc print data =new_data;

cum_sales_by_store 라는 새 열에는 판매 열 값의 누적 합계가 매장별로 그룹화되어 포함됩니다.

이 예에서 RETAIN 문은 cum_sales_by_store 라는 변수를 0으로 설정한 다음 DATA 단계를 반복할 때마다 store 열의 값이 해당 특정 값의 첫 번째 항목인지 확인합니다.

처음 발생한 경우 cum_sales_by_store 값이 sales 열의 값으로 설정되었습니다. 그렇지 않으면 sales 열의 값이 cum_sales_by_store 의 기존 값에 추가되었습니다.

예 3: RETAIN을 사용하여 그룹당 누적 개수 계산

다음 코드는 RETAIN 문을 사용하여 매장당 누적 판매량을 표시하는 데이터 세트에 새 열을 생성하는 방법을 보여줍니다.

 /*calculate cumulative count by store*/
data new_data;
    set original_data;
    by store
    retain store_count;
    if first.store then store_count = 1 ;
    else store_count = store_count + 1 ;
run ;

/*view results*/
proc print data = new_data;

store_count 라는 새 열에는 각 매장의 누적 개수가 포함됩니다.

이 예에서 RETAIN 문은 store_count 라는 변수를 0으로 설정한 다음 DATA 단계를 반복할 때마다 store 열의 값이 해당 특정 값의 첫 번째 항목인지 확인합니다.

이것이 처음 발생한 경우 store_count 값은 1로 설정되었습니다. 그렇지 않으면 store_count 의 기존 값에 1 값이 추가되었습니다.

추가 리소스

다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS에서 그룹당 합계를 계산하는 방법
SAS에서 그룹당 평균을 계산하는 방법
SAS에서 이동 평균을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다