Як використовувати функцію 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *