Cara menggunakan fungsi lag di sas (dengan contoh)


Anda dapat menggunakan fungsi LAG di SAS untuk mengambil nilai variabel yang digeser.

Fungsi ini menggunakan sintaks dasar berikut:

 lag1_value = lag (value);

Secara default, lag menemukan nilai variabel sebelumnya.

Namun, Anda dapat menggunakan lag2 , lag3 , lagn , dll. untuk menghitung nilai pada 2 penundaan, pada 3 penundaan, pada n-lag, dll.

Contoh berikut menunjukkan cara menggunakan fungsi lag dalam praktiknya.

Contoh 1: Pergeseran nilai dihitung untuk variabel tertentu

Katakanlah kita memiliki kumpulan data berikut di SAS yang menunjukkan total penjualan yang dilakukan oleh sebuah toko pada hari berturut-turut:

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

Kode berikut menunjukkan cara menghitung nilai penjualan yang tertinggal 1, 2, dan 3 hari:

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

Contoh fungsi pergeseran SAS

Tiga kolom baru (lag1_sales, lag2_sales, lag3_sales) menampilkan penjualan yang masing-masing tertinggal satu, dua, dan tiga hari.

Contoh 2: nilai yang digeser dihitung berdasarkan kelompok

Katakanlah kita memiliki kumpulan data berikut di SAS yang menunjukkan total penjualan yang dilakukan oleh dua toko pada hari berturut-turut:

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

Kita dapat menggunakan kode berikut untuk menghitung nilai penjualan tertinggal 1 hari per toko:

 /*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 diimbangi berdasarkan grup

Nilai pada kolom lag1_sales menampilkan nilai penjualan lag 1 hari untuk setiap toko.

Perhatikan bahwa nilai lag1_sales di baris 7 kosong karena nilai lag satu hari untuk baris ini mewakili nilai penjualan toko lain.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di SAS:

Cara menormalkan data di SAS
Cara menghapus duplikat di SAS
Bagaimana cara mengganti nilai yang hilang dengan nol di SAS

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *