Как использовать функцию prxmatch в sas (с примерами)


Вы можете использовать функцию PRXMATCH в SAS для поиска определенного шаблона в строке и возврата позиции, в которой этот шаблон найден.

Эта функция использует следующий базовый синтаксис:

PRXMATCH(регулярное выражение, источник)

Золото:

  • регулярное выражение : регулярное выражение, определяющее шаблон для поиска.
  • source : Имя переменной для поиска.

В следующих примерах показаны три распространенных способа использования этой функции на практике со следующим набором данных в 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, который содержит позицию, в которой строка «avs» появляется в столбце команды:

 /*create new dataset*/
data new_data;
    set my_data;
    position = prxmatch ("/avs/", team);
run ;

/*view new dataset*/
proc print data = new_data; 

По результату мы видим:

  • Первая строка содержит шаблон «avs» в столбце команды, начиная со второй позиции строки.
  • Вторая строка содержит шаблон «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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *