الدليل الكامل للقيام بالحلقات في sas
يمكن استخدام حلقة DO في SAS لتنفيذ إجراء ما لعدد معين من المرات.
هناك ثلاث حلقات DO أساسية في SAS:
1. اصنع الحلقة
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
ماذا تفعل : تنفذ هذه الحلقة 10 تكرارات، من i = 1 إلى 10، حيث تساوي قيمة كل صف i مضروبًا في 4.
عندما تتوقف : تتوقف هذه الحلقة فقط بعد 10 تكرارات.
2. افعل ذلك أثناء الحلقة
data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
x = i*4;
output ;
end ;
run ;
ماذا تفعل : ستحاول هذه الحلقة إجراء 10 تكرارات، من i = 1 إلى 10، حيث تساوي قيمة كل صف i مضروبًا في 4.
عندما تتوقف : ستتوقف هذه الحلقة عندما تتجاوز قيمة x 20 أو عند اكتمال 10 تكرارات، أيهما يأتي أولاً.
3. افعل حتى الحلقة
data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
x = i*4;
output ;
end ;
run ;
ماذا تفعل : ستحاول هذه الحلقة إجراء 10 تكرارات، من i = 1 إلى 10، حيث تساوي قيمة كل صف i مضروبًا في 4.
عندما تتوقف : ستتوقف هذه الحلقة عندما تتجاوز قيمة x 30 أو عند اكتمال 10 تكرارات، أيهما يأتي أولاً.
توضح الأمثلة التالية كيفية استخدام كل حلقة DO عمليًا.
مثال 1: قم بالتكرار
يمكننا استخدام حلقة DO التالية لإنشاء مجموعة بيانات مكونة من 10 صفوف:
/*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data1;
والنتيجة هي مجموعة بيانات تحتوي على 10 صفوف حيث تتراوح القيم في العمود i من 1 إلى 10 والقيم في العمود x تتراوح من 4 إلى 40.
لاحظ أنه يمكنك استخدام drop i لإسقاط عمود الفهرس من مجموعة البيانات:
/*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
drop i;
run ;
/*view dataset*/
proc print data =data1;
المثال 2: افعل أثناء التكرار
يمكننا استخدام حلقة DO WHILE التالية لإنشاء مجموعة بيانات بمتغير i من i = 1 إلى 10، حيث تساوي قيمة كل صف i مضروبًا في 4 بينما x أقل من 20:
/*use DO WHILE loop to create dataset*/
data data2;
x = 0;
do i = 1 to 10 while (x < 20 );
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data2;
لاحظ أن الحلقة توقفت عن إنشاء الصفوف بمجرد وصول xa إلى 20.
مثال 3: قم بالتكرار حتى النهاية
يمكننا استخدام حلقة DO UNTIL التالية لإنشاء مجموعة بيانات بمتغير i من i = 1 إلى 10، حيث تساوي قيمة كل صف i مضروبًا في 4 حتى تصبح x أكبر من 30:
/*use DO UNTIL loop to create dataset*/
data data3;
x = 0;
do i = 1 to 10 until (x > 30 );
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data3;
لاحظ أن الحلقة توقفت عن إنشاء الصفوف بمجرد تجاوز x 30.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:
كيفية تطبيع البيانات في SAS
كيفية إزالة التكرارات في SAS
كيفية استبدال القيم المفقودة بالصفر في SAS