Sas: birleştirme ifadesinde (in=a) nasıl kullanılır?


SAS’ta iki veri kümesini birleştirirken, yalnızca belirli bir veri kümesinde bir değerin bulunduğu satırları döndürmek için IN ifadesini kullanabilirsiniz.

IN ifadesini pratikte kullanmanın bazı yaygın yolları şunlardır:

Yöntem 1: İlk veri kümesinde değerin bulunduğu satırları döndür (in=a)

 data final_data;
  merge data1 (in=a) data2;
  byID ;
  if a;
run ;

Bu özel örnek, veri1 ve veri2 adı verilen veri kümelerini birleştirir ve yalnızca veri1 içinde bir değerin bulunduğu satırları döndürür.

Yöntem 2: İkinci veri kümesinde değerin bulunduğu satırları döndür (in=b)

 data final_data;
  merge data1 data2 (in=b);
  byID ;
  if b;
run ;

Bu özel örnek, veri1 ve veri2 adı verilen veri kümelerini birleştirir ve yalnızca veri2 içinde bir değerin bulunduğu satırları döndürür.

Yöntem 3: Değerin hem (in=a) hem de (in=b) veri kümelerinde mevcut olduğu satırları döndür

 data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and b;
run ;

Bu özel örnek, veri1 ve veri2 adı verilen veri kümelerini birleştirir ve yalnızca hem veri1 hem de veri2’de bir değerin bulunduğu satırları döndürür.

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki iki veri kümesiyle nasıl kullanılacağını gösterir:

 /*create first dataset*/
data data1;
    inputIDGender $;
    datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;

title "data1";
proc print data = data1;

/*create second dataset*/
data data2;
    input IDSales;
    datalines ;
1 22
2 15
4 29
6 31
7 20
8 13
;
run ;

title "data2";
proc print data = data2; 

Örnek 1: Tüm satırları döndür

İki veri kümesini ID sütun değerine göre birleştirmek ve her iki veri kümesindeki tüm satırları döndürmek için herhangi bir IN ifadesi olmadan aşağıdaki birleştirme ifadesini kullanabiliriz:

 /*perform merge*/
data final_data;
  merge data1 data2;
  byID ;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

Her iki veri kümesinde de bulunmayan bir kimlik değeri nedeniyle değerler eksik olsa bile, her iki veri kümesindeki tüm satırların döndürüldüğünü unutmayın.

Örnek 2: İlk veri kümesinde değerin bulunduğu satırları döndürme (=a cinsinden)

Kimlik sütunundaki değere göre iki veri kümesini birleştirmek ve yalnızca ilk veri kümesinde bir değerin bulunduğu satırları döndürmek için aşağıdaki birleştirme ifadesini (in=a) ile kullanabiliriz:

 /*perform merge*/
data final_data;
  merge data1 (in = a) data2;
  byID ;
  if a;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

Yalnızca ilk veri kümesinde değeri bulunan satırların döndürüldüğünü unutmayın.

Örnek 3: İkinci veri kümesinde değerin bulunduğu satırları döndürme (in=b)

Kimlik sütunundaki değere göre iki veri kümesini birleştirmek ve yalnızca ikinci veri kümesinde bir değerin bulunduğu satırları döndürmek için aşağıdaki birleştirme ifadesini (in=b) ile kullanabiliriz:

 /*perform merge*/
data final_data;
  merge data1 data2(in=b);
  byID ;
  if b;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

Yalnızca ikinci veri kümesinde değeri bulunan satırların döndürüldüğünü unutmayın.

Örnek 4: Değerin her iki veri kümesinde (in = a) ve (in = b) mevcut olduğu satırları döndürme

Kimlik sütunundaki değere göre iki veri kümesini birleştirmek ve yalnızca her iki veri kümesinde de bir değerin bulunduğu satırları döndürmek için (in=a) ve (in=b) ile aşağıdaki birleştirme ifadesini kullanabiliriz:

 /*perform merge*/
data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and b;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

Yalnızca her iki veri kümesinde de değer bulunan satırların döndürüldüğünü unutmayın.

Not : SAS birleştirme bildiriminin tam belgelerini burada bulabilirsiniz.

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 sol birleştirme nasıl yapılır
SAS’ta iç birleştirme nasıl gerçekleştirilir?
SAS’ta harici birleştirme nasıl gerçekleştirilir?

Yorum ekle

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