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