كيفية استخدام وظيفة prxchange في sas (مع أمثلة)


يمكنك استخدام الدالة PRXCHANGE في SAS لاستبدال نمط معين في سلسلة.

تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:

PRXCHANGE (التعبير العادي، الأوقات، المصدر)

ذهب:

  • التعبير العادي : التعبير العادي الذي يحدد النمط المراد البحث عنه
  • times : عدد مرات الاستبدال للبحث عن النمط واستبداله (استخدم -1 لمواصلة استبدال النمط حتى الوصول إلى نهاية المصدر )
  • المصدر : اسم المتغير المراد البحث عنه

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

 /*create dataset*/
data my_data;
    input phrase $char40. ;
    datalines ;
This is a cool name
That is a cool cool zebra
Oh hey there
Oh cool it's a cool-looking dog
Well now that is COOL
;
run ;

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

مثال 1: استخدم PRXCHANGE لاستبدال النمط الموجود في السلسلة بنمط جديد

يوضح التعليمة البرمجية التالية كيفية استخدام الدالة PRXCHANGE لإنشاء عمود جديد يسمى new_phrase الذي يستبدل كل تكرار لـ “cool” بـ “fun” في عمود العبارة :

 /*create new dataset*/
data new_data;
set my_data;
    new_phrase = prxchange ('s/cool/fun/i', -1, phrase);
run ;

/*view new dataset*/
proc print data = new_data; 

لاحظ أنه تم استبدال كل مثيل لكلمة “رائع” بكلمة “مرح”.

لاحظ أننا استخدمنا s في التعبير العادي لتحديد أننا أردنا إجراء استبدال واستخدمنا i لتحديد أنه لا ينبغي أن يكون حساسًا لحالة الأحرف.

مثال 2: استخدم PRXCHANGE لاستبدال النمط الموجود في السلسلة بمسافة فارغة

يوضح التعليمة البرمجية التالية كيفية استخدام الدالة PRXCHANGE لإنشاء عمود جديد يسمى new_phrase الذي يستبدل كل تكرار لكلمة “cool” بمسافة في عمود العبارة :

 /*create new dataset*/
data new_data;
    set my_data;
    new_phrase = prxchange ('s/cool//i', -1, phrase);
run ;

/*view new dataset*/
proc print data = new_data; 

لاحظ أنه تم استبدال كل ظهور لكلمة “رائع” بمسافة.

مصادر إضافية

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

كيفية استخراج الأرقام من سلسلة في SAS
كيفية إزالة الفواصل من سلسلة في SAS
كيفية تقسيم السلاسل حسب المحدد في SAS

Add a Comment

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