كيفية استخدام وظيفة prxmatch في sas (مع أمثلة)
يمكنك استخدام الدالة PRXMATCH في SAS للبحث عن نمط معين في سلسلة وإرجاع الموضع الذي تم العثور على النمط فيه.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
PRXMATCH (التعبير العادي، المصدر)
ذهب:
- التعبير العادي : التعبير العادي الذي يحدد النمط المراد البحث عنه
- المصدر : اسم المتغير المراد البحث عنه
توضح الأمثلة التالية ثلاث طرق شائعة لاستخدام هذه الوظيفة عمليًا مع مجموعة البيانات التالية في SAS:
/*create dataset*/
data my_data;
input team $points;
datalines ;
Mavs 22
mavs 14
Warriors 23
Mavs 19
warriors 34
MAVS 40
WARRIORS 39
;
run ;
/*view dataset*/
proc print data =my_data;
مثال 1: استخدم PRXMATCH للعثور على موضع النمط في سلسلة
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة PRXMATCH لإنشاء عمود جديد يسمى الموضع الذي يحتوي على الموضع الذي تظهر فيه السلسلة “avs” في عمود الفريق:
/*create new dataset*/
data new_data;
set my_data;
position = prxmatch ("/avs/", team);
run ;
/*view new dataset*/
proc print data = new_data;
ومن النتيجة يمكننا أن نرى:
- يحتوي السطر الأول على النمط “avs” في عمود الفريق بدءًا من الموضع 2 من السلسلة.
- يحتوي السطر الثاني على النمط “avs” في موضع بداية عمود الفريق 2 في السلسلة.
- لا يحتوي الصف الثالث على نمط “avs” في عمود الفريق، لذا يتم إرجاع القيمة 0 .
وما إلى ذلك وهلم جرا.
مثال 2: استخدم PRXMATCH للتحقق مما إذا كانت السلسلة تحتوي على نمط
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة PRXMATCH لإنشاء عمود جديد يسمى mavs_flag الذي يحتوي على قيمة 1 إذا كانت سلسلة عمود الفريق تحتوي على “avs” في أي مكان في السلسلة وقيمة 0 إذا لم يكن الأمر كذلك:
/*create new dataset*/
data new_data;
set my_data;
if prxmatch("/Mavs/i", team) > 0 then mavs_flag = 1 ;
else mavs_flag = 0 ;
run ;
/*view new dataset*/
proc print data = new_data;
لاحظ أن الحرف i الموجود في نهاية التعبير العادي يحدد أنه يجب على SAS إجراء بحث غير حساس لحالة الأحرف.
فقط انسَ حرف i إذا كنت تريد إجراء بحث حساس لحالة الأحرف بدلاً من ذلك.
مثال 3: استخدم PRXMATCH لتصفية مجموعة البيانات للصفوف التي تحتوي على نمط
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة PRXMATCH لإنشاء مجموعة بيانات جديدة تحتوي فقط على الصفوف الموجودة في my_data التي تحتوي على السلسلة “Mavs” (غير حساسة لحالة الأحرف) في عمود الفريق:
/*create dataset*/
data original_doriginal_data;
لاحظ أن كل صف من الصفوف في مجموعة البيانات الجديدة يحتوي على “Mavs” في عمود الفريق.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:
كيفية استخراج الأرقام من سلسلة في SAS
كيفية إزالة الفواصل من سلسلة في SAS
كيفية تقسيم السلاسل حسب المحدد في SAS