Come utilizzare la funzione prxmatch in sas (con esempi)
È possibile utilizzare la funzione PRXMATCH in SAS per cercare un modello specifico in una stringa e restituire la posizione in cui si trova il modello.
Questa funzione utilizza la seguente sintassi di base:
PRXMATCH(espressione regolare, sorgente)
Oro:
- espressione regolare : espressione regolare che specifica il modello da cercare
- source : nome della variabile da cercare
I seguenti esempi mostrano tre modi comuni per utilizzare questa funzione nella pratica con il seguente set di dati in 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;
Esempio 1: utilizzare PRXMATCH per trovare la posizione di un modello in una stringa
Il codice seguente mostra come utilizzare la funzione PRXMATCH per creare una nuova colonna denominata posizione che contiene la posizione in cui appare la stringa “avs” nella colonna della squadra:
/*create new dataset*/
data new_data;
set my_data;
position = prxmatch ("/avs/", team);
run ;
/*view new dataset*/
proc print data = new_data;
Dal risultato possiamo vedere:
- La prima riga contiene il modello “avs” nella colonna della squadra a partire dalla posizione 2 della stringa.
- La seconda riga contiene il modello “avs” nella colonna della squadra, posizione iniziale 2 nella stringa.
- La terza riga non contiene il modello “avs” nella colonna della squadra, quindi viene restituito il valore 0 .
E così via.
Esempio 2: utilizzare PRXMATCH per verificare se la stringa contiene un modello
Il codice seguente mostra come utilizzare la funzione PRXMATCH per creare una nuova colonna denominata mavs_flag che contiene un valore pari a 1 se la stringa della colonna del team contiene “avs” in qualsiasi punto della stringa e un valore pari a 0 in caso contrario:
/*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;
Tieni presente che la i alla fine dell’espressione regolare specifica che SAS deve eseguire una ricerca senza distinzione tra maiuscole e minuscole.
Dimentica semplicemente la i se vuoi invece fare una ricerca con distinzione tra maiuscole e minuscole.
Esempio 3: utilizzare PRXMATCH per filtrare il set di dati per le righe contenenti un modello
Il codice seguente mostra come utilizzare la funzione PRXMATCH per creare un nuovo set di dati contenente solo le righe in my_data che hanno la stringa “Mavs” (senza distinzione tra maiuscole e minuscole) nella colonna del team:
/*create dataset*/
data original_doriginal_data;
Tieni presente che ciascuna riga nel nuovo set di dati contiene “Mavs” nella colonna della squadra.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:
Come estrarre numeri da una stringa in SAS
Come rimuovere le virgole da una stringa in SAS
Come dividere le stringhe per delimitatore in SAS