Cara menggunakan pernyataan retain di sas (dengan contoh)


Anda dapat menggunakan pernyataan RETAIN di SAS untuk menentukan variabel yang nilainya tidak boleh ditetapkan sebagai hilang pada awal setiap iterasi langkah DATA .

Pernyataan RETAIN dapat digunakan untuk berbagai tugas di SAS, namun berikut adalah tiga kasus penggunaan yang paling umum:

Kasus 1: Gunakan RETAIN untuk menghitung jumlah kumulatif

 data new_data;
    set original_data;
    retain cum_sum;
    cum_sum + values_variable;
run ;

Kasus 2: gunakan RETAIN untuk menghitung jumlah kumulatif per grup

 data new_data;
    set original_data;
    by grouping_variable
    retain cum_sum_by_group;
    if first.grouping_variable then cum_sum_by_group = values_variable;
    else cum_sum_by_group = cum_sum_by_group + values_variable;
run ;

Kasus 3: Gunakan RETAIN untuk menghitung jumlah kumulatif per grup

 data new_data;
    set original_data;
    by grouping_variable
    retain count_by_group;
    if first.grouping_variable then count_by_group = 1 ;
    else count_by_group = count_by_group + 1 ;
run ;

Contoh berikut menunjukkan cara menggunakan setiap kasus dalam praktik dengan kumpulan data berikut di SAS yang menunjukkan penjualan yang dilakukan pada hari berturut-turut oleh toko yang berbeda:

 /*create dataset*/
data original_data;
    input store $sales;
    datalines ;
At 4
AT 5
At 2
B 6
B 3
B5
C 3
C 8
C 6
;
run ;

/*view dataset*/
proc print data = original_data; 

Contoh 1: Gunakan RETAIN untuk menghitung jumlah berjalan

Kode berikut menunjukkan cara menggunakan pernyataan RETAIN untuk membuat kolom baru di kumpulan data yang menampilkan jumlah penjualan yang berjalan:

 /*calculate cumulative sum of sales*/
data new_data;
    set original_data;
    retain cum_sales;
    cum_sales+sales;
run ;

/*view results*/
proc print data = new_data;

Kolom baru bernama cum_sales berisi jumlah kumulatif nilai pada kolom penjualan .

Misalnya:

  • Jumlah kumulatif pada baris 1: 4
  • Jumlah kumulatif pada baris 2: 4 + 5 = 9
  • Jumlah kumulatif pada baris 3: 4 + 5 + 2 = 11

Dan seterusnya.

Dalam contoh ini, pernyataan RETAIN menyetel variabel yang disebut cum_sales ke nol, dan kemudian pada setiap iterasi langkah DATA , pernyataan tersebut hanya menambahkan nilai penjualan baru ke total cum_sales yang berjalan.

Contoh 2: Gunakan RETAIN untuk menghitung jumlah kumulatif per grup

Kode berikut menunjukkan cara menggunakan pernyataan RETAIN untuk membuat kolom baru di kumpulan data yang menampilkan jumlah kumulatif penjualan menurut toko:

 /*calculate cumulative sum of sales by store*/
data new_data;
    set original_data;
    by store;
    retain cum_sales_by_store;
    if first.store then cum_sales_by_store = sales;
    else cum_sales_by_store = cum_sales_by_store + sales;
run ;

/*view results*/
proc print data =new_data;

Kolom baru bernama cum_sales_by_store berisi jumlah kumulatif nilai pada kolom penjualan , dikelompokkan berdasarkan toko.

Dalam contoh ini, pernyataan RETAIN menyetel variabel yang disebut cum_sales_by_store ke nol, dan kemudian pada setiap iterasi langkah DATA , pernyataan tersebut memeriksa apakah nilai di kolom penyimpanan adalah kemunculan pertama dari nilai tersebut.

Jika ini yang pertama kali terjadi, nilai cum_sales_by_store ditetapkan ke nilai di kolom penjualan. Jika tidak, nilai di kolom sales ditambahkan ke nilai cum_sales_by_store yang sudah ada.

Contoh 3: Gunakan RETAIN untuk menghitung jumlah kumulatif per grup

Kode berikut menunjukkan cara menggunakan pernyataan RETAIN untuk membuat kolom baru di kumpulan data yang menampilkan jumlah kumulatif penjualan per toko:

 /*calculate cumulative count by store*/
data new_data;
    set original_data;
    by store
    retain store_count;
    if first.store then store_count = 1 ;
    else store_count = store_count + 1 ;
run ;

/*view results*/
proc print data = new_data;

Kolom baru bernama store_count berisi jumlah kumulatif setiap toko.

Dalam contoh ini, pernyataan RETAIN menyetel variabel yang disebut store_count ke nol, dan kemudian, pada setiap iterasi langkah DATA , ia memeriksa apakah nilai di kolom store adalah kemunculan pertama dari nilai tersebut.

Jika ini adalah kejadian pertama, nilai store_count ditetapkan ke 1. Jika tidak, nilai 1 ditambahkan ke nilai yang ada untuk store_count .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di SAS:

Cara menghitung jumlah per grup di SAS
Cara menghitung rata-rata per grup di SAS
Cara menghitung rata-rata bergerak di SAS

Tambahkan komentar

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