Sas: كيفية دمج مجموعات البيانات بناءً على متغيرين
يمكنك استخدام بناء الجملة الأساسي التالي لدمج مجموعتين من البيانات في SAS بناءً على مطابقة متغيرين:
data final_data;
merge data1(in=a) data2(in=b);
by ID Store;
if a and b;
run ;
يدمج هذا المثال تحديدًا مجموعات البيانات المسماة data1 و data2 استنادًا إلى المتغيرات المسماة ID و Store ويعيد فقط الصفوف التي توجد بها قيمة في كلتا مجموعتي البيانات.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: دمج مجموعات البيانات في SAS بناءً على متغيرين
لنفترض أن لدينا مجموعة البيانات التالية في SAS والتي تحتوي على معلومات حول مندوبي مبيعات الشركة:
/*create first dataset*/
data data1;
inputStoreID $;
datalines ;
1A
1B
1 C
2A
2C
3A
3 B
;
run ;
/*view first dataset*/
title "data1";
proc print data = data1;
ولنفترض أن لدينا مجموعة بيانات أخرى تحتوي على معلومات حول المبيعات التي تتم في متاجر مختلفة بواسطة كل شريك:
/*create second dataset*/
data data2;
input Store ID $Sales;
datalines ;
1 to 22
1 B 25
2 to 40
2 B 24
2 C 29
3 to 12
3 B 15
;
run ;
/*view second dataset*/
title "data2";
proc print data = data2;
يمكننا استخدام عبارة الدمج التالية لدمج مجموعتي البيانات بناءً على القيم المطابقة في عمودي المعرف والمتجر ، ثم إرجاع الصفوف التي توجد بها قيمة في كلا العمودين فقط :
/*perform merge*/
data final_data;
merge data1(in=a) data2(in=b);
by ID Store;
if a and b;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
تقوم مجموعة البيانات الناتجة بإرجاع الصفوف التي تتطابق فيها قيم عمود المعرف والمتجر .
ملاحظة : يمكنك العثور على الوثائق الكاملة لبيان دمج SAS هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:
SAS: كيفية إجراء عملية دمج واحد إلى متعدد
SAS: كيفية استخدام (in=a) في بيان الدمج
SAS: كيفية الدمج إذا لم يكن A هو B