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에서 이동 평균을 계산하는 방법