كيفية استخدام بيان الاحتفاظ في sas (مع أمثلة)


يمكنك استخدام عبارة RETAIN في SAS لتحديد متغير لا ينبغي تعيين قيمته على أنها مفقودة في بداية كل تكرار لخطوة البيانات .

يمكن استخدام عبارة RETAIN لمجموعة متنوعة من المهام في SAS، ولكن فيما يلي حالات الاستخدام الثلاث الأكثر شيوعًا:

الحالة 1: استخدم RETAIN لحساب المجموع التراكمي

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

الحالة 2: استخدم RETAIN لحساب المجموع التراكمي لكل مجموعة

 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 ;

الحالة 3: استخدم الاحتفاظ لحساب العدد التراكمي لكل مجموعة

 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 ;

توضح الأمثلة التالية كيفية استخدام كل حالة عمليًا مع مجموعة البيانات التالية في SAS والتي توضح المبيعات التي تمت في أيام متتالية بواسطة متاجر مختلفة:

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

مثال 1: استخدم RETAIN لحساب المجموع الجاري

يوضح التعليمة البرمجية التالية كيفية استخدام عبارة RETAIN لإنشاء عمود جديد في مجموعة البيانات التي تعرض المبلغ الجاري للمبيعات:

 /*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 على المجموع التراكمي للقيم الموجودة في عمود المبيعات .

على سبيل المثال:

  • المجموع التراكمي على السطر 1: 4
  • المجموع التراكمي في السطر 2: 4 + 5 = 9
  • المجموع التراكمي في السطر 3: 4 + 5 + 2 = 11

وما إلى ذلك وهلم جرا.

في هذا المثال، تقوم عبارة RETAIN بتعيين المتغير المسمى cum_sales إلى صفر، ثم في كل تكرار لخطوة DATA تقوم ببساطة بإضافة قيمة المبيعات الجديدة إلى الإجمالي الجاري لـ cum_sales .

مثال 2: استخدم RETAIN لحساب المجموع التراكمي لكل مجموعة

يوضح التعليمة البرمجية التالية كيفية استخدام عبارة RETAIN لإنشاء عمود جديد في مجموعة البيانات التي تعرض المجموع التراكمي للمبيعات حسب المتجر:

 /*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 على المجموع التراكمي للقيم الموجودة في عمود المبيعات ، مجمعة حسب المتجر.

في هذا المثال، تقوم عبارة RETAIN بتعيين المتغير المسمى cum_sales_by_store إلى صفر، ثم في كل تكرار لخطوة DATA ، تتحقق مما إذا كانت القيمة الموجودة في عمود المتجر هي التواجد الأول لتلك القيمة المحددة.

إذا كان هذا هو التكرار الأول، فسيتم تعيين قيمة cum_sales_by_store على القيمة الموجودة في عمود المبيعات. بخلاف ذلك، تمت إضافة القيمة الموجودة في عمود المبيعات إلى القيمة الحالية لـ cum_sales_by_store .

مثال 3: استخدم RETAIN لحساب العدد التراكمي لكل مجموعة

يوضح التعليمة البرمجية التالية كيفية استخدام عبارة RETAIN لإنشاء عمود جديد في مجموعة البيانات التي تعرض العدد التراكمي للمبيعات لكل متجر:

 /*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 على العدد التراكمي لكل متجر.

في هذا المثال، تقوم عبارة RETAIN بتعيين المتغير المسمى store_count إلى صفر، وبعد ذلك، في كل تكرار لخطوة DATA ، تتحقق مما إذا كانت القيمة الموجودة في عمود المتجر هي التواجد الأول لتلك القيمة المحددة.

إذا كان هذا هو التكرار الأول، فسيتم تعيين قيمة store_count إلى 1. وبخلاف ذلك، تمت إضافة قيمة 1 إلى القيمة الحالية لـ store_count .

مصادر إضافية

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

كيفية حساب المبلغ لكل مجموعة في SAS
كيفية حساب المتوسط لكل مجموعة في SAS
كيفية حساب المتوسط المتحرك في ساس

Add a Comment

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