Sas: كيفية الدمج إذا لم يكن a هو b


يمكنك استخدام بناء الجملة الأساسي التالي لدمج مجموعتي بيانات في SAS وإرجاع فقط تلك الصفوف التي توجد لها قيمة في مجموعة البيانات الأولى وليس الثانية:

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

يدمج هذا المثال تحديدًا مجموعات بيانات تسمى data1 و data2 ويعيد فقط الصفوف التي توجد بها قيمة في data1 وليس data2 .

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: دمج مجموعتي بيانات في SAS باستخدام If A Not B

لنفترض أن لدينا مجموعتي البيانات التاليتين في SAS والتي تحتوي على معلومات حول مندوبي مبيعات الشركة:

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

إذا استخدمنا عبارة الدمج التالية لدمج مجموعتي البيانات بناءً على قيمة عمود المعرف ، فسيتم إرجاع جميع الصفوف من مجموعتي البيانات:

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

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

ومع ذلك، يمكننا استخدام عبارات IN لإرجاع الصفوف التي توجد بها قيمة في مجموعة البيانات الأولى فقط وليس مجموعة البيانات الثانية:

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

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

لاحظ أنه يتم إرجاع الصفوف التي توجد لها قيمة فقط في مجموعة البيانات الأولى وليس مجموعة البيانات الثانية.

ملاحظة : يمكنك العثور على الوثائق الكاملة لبيان دمج SAS هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:

كيفية القيام بالانضمام الأيسر في SAS
كيفية إجراء صلة داخلية في SAS
كيفية إجراء صلة خارجية في SAS

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *