كيفية استخدام الدالة compress في sas (مع أمثلة)
يمكنك استخدام الدالة COMPRESS في SAS لإزالة أحرف معينة من سلسلة.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
ضغط (سلسلة، أحرف المراد إزالتها)
ذهب:
- السلسلة : السلسلة المراد تحليلها
- الأحرف المراد إزالتها : حرف واحد أو أكثر محدد لإزالته من السلسلة
فيما يلي الطرق الأربع الأكثر شيوعًا لاستخدام هذه الميزة:
الطريقة الأولى: إزالة كافة المسافات الفارغة من السلسلة
data new_data;
set original_data;
compressed_string = compress (string_variable);
run ;
الطريقة الثانية: إزالة أحرف معينة من السلسلة
data new_data;
set original_data;
compressed_string = compress (string_variable, ' !?@# ');
run ;
الطريقة الثالثة: إزالة كافة الأحرف الأبجدية من السلسلة
data new_data;
set original_data;
compressed_string = compress (string_variable, '', ' a ');
run ;
الطريقة الرابعة: إزالة كافة القيم الرقمية من السلسلة
data new_data;
set original_data;
compressed_string = compress (string_variable, '', ' d ');
run ;
توضح الأمثلة التالية كيفية استخدام كل طريقة مع مجموعة البيانات التالية في SAS:
/*create dataset*/
data original_data;
input name $25.;
datalines ;
Andy Lincoln4 Bernard!
Barren Michael55 Smith!
Chad Simpson7 Arnolds?
Derrick Parson2 Henry
Eric Miller2 Johansen!
Frank Giovanni5 Goode
;
run ;
/*view dataset*/
proc print data = original_data;
مثال 1: إزالة كافة المسافات الفارغة من السلسلة
يوضح التعليمة البرمجية التالية كيفية إزالة كافة المسافات الفارغة من كل سلسلة في عمود الاسم :
/*remove blank spaces from each string in name column*/
data new_data;
set original_data;
compressed_name = compress (name);
run ;
/*view results*/
proc print data =new_data;
لاحظ أنه تمت إزالة كافة المسافات الفارغة من كل سلسلة في العمود الجديد المسمى tablet_name .
المثال 2: إزالة أحرف محددة من السلسلة
يوضح التعليمة البرمجية التالية كيفية إزالة كافة علامات الاستفهام والتعجب من كل سلسلة في عمود الاسم :
/*remove question marks and exclamation points from each string in name column*/
data new_data;
set original_data;
compressed_name = compress (name, ' ?! ');
run ;
/*view results*/
proc print data =new_data;
لاحظ أنه تمت إزالة كافة علامات الاستفهام والتعجب من كل سلسلة في العمود الجديد المسمى tablet_name .
مثال 3: إزالة كافة الأحرف الأبجدية من السلسلة
يوضح التعليمة البرمجية التالية كيفية إزالة كافة الأحرف الأبجدية من كل سلسلة في عمود الاسم :
/*remove all alphabetical characters from each string in name column*/
data new_data;
set original_data;
compressed_name = compress (name, '', ' a ');
run ;
/*view results*/
proc print data = new_data;
لاحظ أنه تمت إزالة كافة الأحرف الأبجدية من كل سلسلة في العمود الجديد المسمى tablet_name .
المثال 4: إزالة كافة القيم الرقمية من السلسلة
يوضح الكود التالي كيفية إزالة جميع القيم الرقمية من كل سلسلة في عمود الاسم :
/*remove all numeric values from each string in name column*/
data new_data;
set original_data;
compressed_name = compress (name, '', ' d ');
run ;
/*view results*/
proc print data =new_data;
لاحظ أنه تمت إزالة كافة القيم الرقمية من كل سلسلة في العمود الجديد المسمى tablet_name .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:
كيفية استخدام الدالة SUBSTR في SAS
كيفية استخدام وظيفة FIND في SAS
كيفية استخدام وظيفة COALESCE في SAS