Jak korzystać z funkcji lag w sas-ie (z przykładami)


Możesz użyć funkcji LAG w SAS-ie, aby pobrać przesunięte wartości zmiennej.

Ta funkcja wykorzystuje następującą podstawową składnię:

 lag1_value = lag (value);

Domyślnie lag znajduje poprzednią wartość zmiennej.

Możesz jednak użyć lag2 , lag3 , lagn itp. do obliczania wartości przy 2 opóźnieniach, przy 3 opóźnieniach, przy n-opóźnieniach itp.

Poniższe przykłady pokazują, jak w praktyce wykorzystać funkcję opóźnienia.

Przykład 1: Przesunięte wartości obliczone dla niektórych zmiennych

Załóżmy, że mamy następujący zestaw danych w SAS-ie, który pokazuje całkowitą sprzedaż zrealizowaną przez sklep w kolejnych dniach:

 /*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; 

Poniższy kod pokazuje, jak obliczyć wartość sprzedaży opóźnionej o 1, 2 i 3 dni:

 /*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; 

Przykład funkcji przesunięcia SAS

Trzy nowe kolumny (lag1_sales, lag2_sales, lag3_sales) wyświetlają sprzedaż opóźnioną odpowiednio o jeden, dwa i trzy dni.

Przykład 2: przesunięte wartości obliczone według grupy

Załóżmy, że mamy następujący zestaw danych w SAS-ie, który pokazuje całkowitą sprzedaż dokonaną przez dwa sklepy w kolejnych dniach:

 /*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; 

Możemy użyć poniższego kodu do obliczenia wartości sprzedaży opóźnionej o 1 dzień dla każdego sklepu:

 /*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 przesunięty według grupy

Wartości w kolumnie lag1_sales wyświetlają wartości sprzedaży opóźnionej o 1 dzień dla każdego sklepu.

Należy pamiętać, że wartość lag1_sales w wierszu 7 jest pusta, ponieważ wartość opóźnienia o jeden dzień w tym wierszu reprezentuje wartość sprzedaży w innym sklepie.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

Jak normalizować dane w SAS-ie
Jak usunąć duplikaty w SAS-ie
Jak zastąpić brakujące wartości zerem w SAS-ie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *