Sas: كيفية تقسيم السلاسل حسب المحدد
يمكنك استخدام وظيفة scan() في SAS لتقسيم سلسلة بسرعة بناءً على محدد معين.
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: تقسيم السلاسل حسب المحدد في SAS
لنفترض أن لدينا مجموعة البيانات التالية في SAS:
/*create dataset*/ data my_data1; input name $25.; datalines ; Andy_Lincoln_Bernard Barry_Michael Chad_Simpson_Smith Derrick_Parson_Henry Eric_Miller Frank_Giovanni_Goodwill ; run ; /*print dataset*/ proc print data =my_data1;
يمكننا استخدام الكود التالي لتقسيم سلسلة الاسم بسرعة إلى ثلاث سلاسل منفصلة:
/*create second dataset with name split into three columns*/ data my_data2; set my_data1; name1= scan (name, 1 , '_'); name2= scan (name, 2 , '_'); name3= scan (name, 3 , '_'); run ; /*view second dataset*/ proc print data =my_data2;
لاحظ أنه تم تقسيم سلسلة عمود الاسم إلى ثلاثة أعمدة جديدة.
بالنسبة للأسماء التي يوجد لها محدد واحد فقط، تكون القيمة الموجودة في العمود name3 فارغة ببساطة.
لاحظ أنه يمكننا أيضًا استخدام دالة الإسقاط لإزالة عمود الاسم الأصلي من مجموعة البيانات الجديدة:
/*create second dataset with name split into three columns, drop original name*/ data my_data2; set my_data1; name1= scan (name, 1 , '_'); name2= scan (name, 2 , '_'); name3= scan (name, 3 , '_'); dropname ; run ; /*view second dataset*/ proc print data =my_data2;
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:
كيفية تطبيع البيانات في SAS
كيفية إعادة تسمية المتغيرات في SAS
كيفية إزالة التكرارات في SAS
كيفية استبدال القيم المفقودة بالصفر في SAS