Sas에서 lag 기능을 사용하는 방법(예제 포함)
SAS의 LAG 함수를 사용하여 변수의 이동된 값을 검색할 수 있습니다.
이 함수는 다음 기본 구문을 사용합니다.
lag1_value = lag (value);
기본적으로 lag는 변수의 이전 값을 찾습니다.
그러나 lag2 , lag3 , lagn 등을 사용할 수 있습니다. 2개 지연, 3개 지연, n-lag 등에서 값을 계산합니다.
다음 예에서는 지연 함수를 실제로 사용하는 방법을 보여줍니다.
예시 1: 특정 변수에 대해 계산된 이동된 값
연속된 날짜에 매장에서 발생한 총 매출을 보여주는 다음과 같은 데이터 세트가 SAS에 있다고 가정해 보겠습니다.
/*create dataset*/ data original_data; input day $sales; datalines ; 1 14 2 19 3 22 4 20 5 16 6 26 7 40 8 43 9 29 10 30 11 35 12 33 ; run ; /*view dataset*/ proc print data =my_data;
다음 코드는 1일, 2일, 3일 지연된 매출 가치를 계산하는 방법을 보여줍니다.
/*create new dataset that shows lagged values of sales*/
data new_data;
set original_data;
lag1_sales = lag(sales);
lag2_sales = lag2(sales);
lag3_sales = lag3(sales);
run ;
/*view new dataset*/
proc print data = new_data;
세 개의 새로운 열(lag1_sales, lag2_sales, lag3_sales)에는 각각 1일, 2일, 3일 지연된 매출이 표시됩니다.
예시 2: 그룹별로 계산된 이동값
연속된 날짜에 두 매장의 총 매출을 보여주는 다음과 같은 데이터 세트가 SAS에 있다고 가정해 보겠습니다.
/*create dataset*/
data original_data;
input store $sales;
datalines ;
At 14
At 19
At 22
At 20
At 16
At 26
B40
B43
B29
B 30
B35
B 33
;
run ;
/*view dataset*/
proc print data = original_data;
다음 코드를 사용하여 매장당 1일 지연 판매 가치를 계산할 수 있습니다.
/*create new dataset that shows lagged values of sales by store*/
data new_data;
set original_data;
by store;
lag1_sales = lag(sales);
if first.store then lag1_sales = .;
run ;
/*view new dataset*/
proc print data = new_data;
lag1_sales 열의 값은 각 매장의 1일 지연 판매 값을 표시합니다.
행 7의 lag1_sales 값은 비어 있습니다. 이 행의 하루 지연 값이 다른 매장의 판매 값을 나타내기 때문입니다.
추가 리소스
다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
SAS에서 데이터를 정규화하는 방법
SAS에서 중복을 제거하는 방법
SAS에서 누락된 값을 0으로 바꾸는 방법