Como usar a função prxmatch no sas (com exemplos)
Você pode usar a função PRXMATCH no SAS para procurar um padrão específico em uma string e retornar a posição em que o padrão foi encontrado.
Esta função usa a seguinte sintaxe básica:
PRXMATCH(expressão regular, fonte)
Ouro:
- expressão regular : expressão regular que especifica o padrão a ser pesquisado
- fonte : Nome da variável a ser pesquisada
Os exemplos a seguir mostram três maneiras comuns de usar esta função na prática com o seguinte conjunto de dados no 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;
Exemplo 1: Use PRXMATCH para encontrar a posição de um padrão em uma string
O código a seguir mostra como usar a função PRXMATCH para criar uma nova coluna chamada posição que contém a posição onde a string “avs” aparece na coluna da equipe:
/*create new dataset*/
data new_data;
set my_data;
position = prxmatch ("/avs/", team);
run ;
/*view new dataset*/
proc print data = new_data;
Pelo resultado podemos ver:
- A primeira linha contém o padrão “avs” na coluna team começando na posição 2 da string.
- A segunda linha contém o padrão “avs” na coluna da equipe começando na posição 2 da string.
- A terceira linha não contém o padrão “avs” na coluna da equipe, portanto, um valor 0 é retornado.
E assim por diante.
Exemplo 2: Use PRXMATCH para verificar se a string contém um padrão
O código a seguir mostra como usar a função PRXMATCH para criar uma nova coluna chamada mavs_flag que contém um valor de 1 se a string da coluna da equipe contiver “avs” em qualquer lugar da string e um valor de 0 se não for o caso:
/*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;
Observe que o i no final da expressão regular especifica que o SAS deve realizar uma pesquisa sem distinção entre maiúsculas e minúsculas.
Apenas esqueça o i se quiser fazer uma pesquisa com distinção entre maiúsculas e minúsculas.
Exemplo 3: Use PRXMATCH para filtrar o conjunto de dados em busca de linhas contendo um padrão
O código a seguir mostra como usar a função PRXMATCH para criar um novo conjunto de dados contendo apenas as linhas em my_data que possuem a string “Mavs” (sem distinção entre maiúsculas e minúsculas) na coluna da equipe:
/*create dataset*/
data original_doriginal_data;
Observe que cada uma das linhas do novo conjunto de dados contém “Mavs” na coluna da equipe.
Recursos adicionais
Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:
Como extrair números de uma string no SAS
Como remover vírgulas de uma string no SAS
Como dividir strings por delimitador no SAS