Sas: كيفية استخدام update في proc sql


يمكنك استخدام عبارة UPDATE في PROC SQL في SAS لتحديث القيم في عمود واحد أو أكثر في مجموعة البيانات.

فيما يلي الطرق الأكثر شيوعًا لاستخدام عبارة UPDATE عمليًا:

الطريقة الأولى: تحديث القيم الموجودة في العمود بناءً على الشرط

 proc sql ;
    update my_data
    set var1='new_value'
    where var1='old_value';
quit ;

الطريقة الثانية: تحديث القيم في العمود بناءً على شروط متعددة

 proc sql ;
    update my_data
    set var1 = 
    case when var1> 25 then 100
    when var1> 20 then 50
    else 0
    end;
quit ;

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

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run ;

/*view dataset*/
proc print data =my_data; 

مثال 1: تحديث القيم في العمود بناءً على الشرط

يمكننا استخدام عبارة UPDATE التالية في PROC SQL لتحديث كل من قيم عمود الفريق لتكون “Atlanta”، حيث القيم الموجودة تساوي “A”:

 /*update values in team column where team is equal to 'A'*/
proc sql ;
    update my_data
    set team='Atlanta'
    where team='A';
quit ;

/*view updated dataset*/
proc print data =my_data; 

لاحظ أن كل قيمة في عمود الفريق كانت تساوي “A” سابقًا تساوي الآن “Atlanta”.

أي قيم لا تساوي “A” في عمود الفريق تم تركها دون تغيير.

مثال 2: تحديث القيم في العمود بناءً على شروط متعددة

يمكننا استخدام عبارة UPDATE التالية في PROC SQL لتحديث كل من القيم الموجودة في عمود النقاط بناءً على عدة شروط:

 /*update values in points column based on multiple conditions*/
proc sql ;
    update my_data
    set points = 
    case when points> 25 then 100
    when points> 20 then 50
    else 0
    end;
quit ;

/*view updated dataset*/
proc print data =my_data; 

استخدمنا عبارة UPDATE مع عبارة CASE WHEN لتحديث القيم في عمود النقاط.

خصوصاً:

  • إذا كانت القيمة الموجودة في عمود النقاط أكبر من 25، نقوم بتحديثها إلى 100 .
  • بخلاف ذلك، إذا كانت القيمة الموجودة في عمود النقاط أكبر من 20، فسنقوم بتحديثها إلى 50 .
  • بخلاف ذلك، قمنا بتحديث القيمة في عمود النقاط لتصبح 0 .

لاحظ أننا استخدمنا ثلاثة شروط فقط في عبارة CASE WHEN ، ولكن يمكنك استخدام أي عدد تريده من الشروط.

مصادر إضافية

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

SAS: كيفية استخدام عامل التشغيل LIKE في PROC SQL
SAS: كيفية استخدام عامل التشغيل IN في PROC SQL
SAS: كيفية استخدام عامل التشغيل WHERE في PROC SQL

Add a Comment

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