Sas'ta lag i̇şlevi nasıl kullanılır (örneklerle)


Bir değişkenin kaydırılmış değerlerini almak için SAS’taki LAG işlevini kullanabilirsiniz.

Bu işlev aşağıdaki temel sözdizimini kullanır:

 lag1_value = lag (value);

Varsayılan olarak gecikme , bir değişkenin önceki değerini bulur.

Ancak lag2 , lag3 , lagn vb.’yi kullanabilirsiniz. 2 gecikmede, 3 gecikmede, n gecikmede vb. değerleri hesaplamak için.

Aşağıdaki örnekler gecikme fonksiyonunun pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: Belirli değişkenler için hesaplanan kaydırılmış değerler

Diyelim ki SAS’ta bir mağazanın birbirini takip eden günlerde yaptığı toplam satışları gösteren aşağıdaki veri setine sahibiz:

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

Aşağıdaki kod, 1, 2 ve 3 gün gecikmeli satışların değerinin nasıl hesaplanacağını gösterir:

 /*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 kaydırma işlevi örneği

Üç yeni sütun (lag1_sales, lag2_sales, lag3_sales) sırasıyla bir, iki ve üç günlük gecikmeli satışları görüntüler.

Örnek 2: gruba göre hesaplanan kaydırılmış değerler

Diyelim ki SAS’ta iki mağazanın birbirini takip eden günlerde yaptığı toplam satışları gösteren aşağıdaki veri setine sahibiz:

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

Mağaza başına 1 günlük gecikmeli satış değerlerini hesaplamak için aşağıdaki kodu kullanabiliriz:

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

Gruba göre SAS dengelemesi

lag1_sales sütunundaki değerler her mağaza için 1 günlük gecikmeli satış değerlerini gösterir.

Bu satıra ait bir günün gecikme değeri başka bir mağazanın satış değerini temsil ettiğinden 7. satırdaki lag1_sales değerinin boş olduğunu unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde SAS’ta diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

SAS’ta veriler nasıl normalleştirilir?
SAS’ta kopyalar nasıl kaldırılır
SAS’ta eksik değerler sıfırla nasıl değiştirilir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir