Sas'ta retain i̇fadesi nasıl kullanılır (örneklerle)


Bir DATA adımının her yinelemesinin başlangıcında değeri eksik olarak ayarlanmaması gereken bir değişkeni belirtmek için SAS’taki RETAIN deyimini kullanabilirsiniz.

RETAIN ifadesi SAS’ta çeşitli görevler için kullanılabilir ancak en yaygın üç kullanım durumu aşağıda verilmiştir:

Durum 1: Kümülatif toplamı hesaplamak için RETAIN kullanın

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

Durum 2: Grup başına kümülatif toplamı hesaplamak için RETAIN’i kullanın

 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 ;

Durum 3: Grup başına kümülatif sayıyı hesaplamak için RETAIN kullanın

 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 ;

Aşağıdaki örnekler, SAS’ta farklı mağazalar tarafından ardışık günlerde yapılan satışları gösteren aşağıdaki veri kümesiyle her bir vakanın pratikte nasıl kullanılacağını gösterir:

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

Örnek 1: Bir cari toplamı hesaplamak için RETAIN kullanın

Aşağıdaki kod, veri kümesinde satışların toplamını görüntüleyen yeni bir sütun oluşturmak için RETAIN ifadesinin nasıl kullanılacağını gösterir:

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

Cum_sales adı verilen yeni sütun, satış sütunundaki değerlerin kümülatif toplamını içerir.

Örneğin:

  • 1. satırdaki kümülatif toplam: 4
  • 2. satırdaki kümülatif toplam: 4 + 5 = 9
  • 3. satırdaki kümülatif toplam: 4 + 5 + 2 = 11

Ve benzeri.

Bu örnekte, RETAIN ifadesi cum_sales adı verilen değişkeni sıfıra ayarlar ve ardından DATA adımının her yinelemesinde yeni satış değerini basitçe cum_sales toplamına ekler.

Örnek 2: Grup başına kümülatif toplamı hesaplamak için RETAIN kullanın

Aşağıdaki kod, mağazaya göre satışların kümülatif toplamını görüntüleyen veri kümesinde yeni bir sütun oluşturmak için RETAIN ifadesinin nasıl kullanılacağını gösterir:

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

cum_sales_by_store adı verilen yeni sütun, satış sütunundaki değerlerin mağazaya göre gruplandırılmış kümülatif toplamını içerir.

Bu örnekte, RETAIN deyimi cum_sales_by_store adlı değişkeni sıfıra ayarlar ve ardından DATA adımının her yinelemesinde, mağaza sütunundaki değerin söz konusu değerin ilk oluşumu olup olmadığını kontrol eder.

Bu ilk kez gerçekleşiyorsa cum_sales_by_store’un değeri satış sütunundaki değere ayarlandı. Aksi takdirde satış sütunundaki değer, cum_sales_by_store için mevcut değere eklendi.

Örnek 3: Grup başına kümülatif sayıyı hesaplamak için RETAIN kullanın

Aşağıdaki kod, veri kümesinde mağaza başına kümülatif satış sayısını görüntüleyen yeni bir sütun oluşturmak için RETAIN ifadesinin nasıl kullanılacağını gösterir:

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

Store_count adlı yeni sütun, her mağazanın kümülatif sayısını içerir.

Bu örnekte, RETAIN ifadesi, Store_count adlı değişkeni sıfıra ayarlar ve ardından, DATA adımının her yinelemesinde, mağaza sütunundaki değerin söz konusu değerin ilk örneği olup olmadığını kontrol eder.

Bu ilk kez oluyorsa, mağaza_sayımı değeri 1 olarak ayarlandı. Aksi takdirde, mağaza_sayımı için mevcut değere 1 değeri eklendi.

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 grup başına toplam nasıl hesaplanır
SAS’ta grup başına ortalama nasıl hesaplanır?
SAS’ta hareketli ortalama nasıl hesaplanır

Yorum ekle

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