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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *