Як використовувати функцію 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 створити новий стовпець під назвою position, який містить позицію, де в стовпці team з’являється рядок «avs»:
/*create new dataset*/
data new_data;
set my_data;
position = prxmatch ("/avs/", team);
run ;
/*view new dataset*/
proc print data = new_data;
З результату ми бачимо:
- Перший рядок містить шаблон “avs” у стовпці team, починаючи з позиції 2 рядка.
- Другий рядок містить шаблон “avs” у стовпці команди, початкова позиція 2 у рядку.
- Третій рядок не містить шаблону «avs» у стовпці team, тому повертається значення 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» (незалежно від регістру) у стовпці team:
/*create dataset*/
data original_doriginal_data;
Зверніть увагу, що кожен із рядків у новому наборі даних містить «Mavs» у стовпці команди.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:
Як отримати числа з рядка в SAS
Як видалити коми з рядка в SAS
Як розділити рядки за роздільником у SAS