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; 

SAS 시프트 함수 예

세 개의 새로운 열(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; 

그룹별 SAS 오프셋

lag1_sales 열의 값은 각 매장의 1일 지연 판매 값을 표시합니다.

행 7의 lag1_sales 값은 비어 있습니다. 이 행의 하루 지연 값이 다른 매장의 판매 값을 나타내기 때문입니다.

추가 리소스

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

SAS에서 데이터를 정규화하는 방법
SAS에서 중복을 제거하는 방법
SAS에서 누락된 값을 0으로 바꾸는 방법

의견을 추가하다

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