Hoe de prxmatch-functie in sas te gebruiken (met voorbeelden)
U kunt de PRXMATCH- functie in SAS gebruiken om naar een specifiek patroon in een string te zoeken en de positie te retourneren waarop het patroon is gevonden.
Deze functie gebruikt de volgende basissyntaxis:
PRXMATCH(reguliere expressie, bron)
Goud:
- reguliere expressie : reguliere expressie die het patroon specificeert waarnaar moet worden gezocht
- source : Naam van de variabele waarnaar moet worden gezocht
In de volgende voorbeelden ziet u drie veelvoorkomende manieren om deze functie in de praktijk te gebruiken met de volgende gegevensset 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;
Voorbeeld 1: Gebruik PRXMATCH om de positie van een patroon in een string te vinden
De volgende code laat zien hoe u de PRXMATCH- functie gebruikt om een nieuwe kolom te maken met de naam position, die de positie bevat waar de tekenreeks „avs“ in de teamkolom verschijnt:
/*create new dataset*/
data new_data;
set my_data;
position = prxmatch ("/avs/", team);
run ;
/*view new dataset*/
proc print data = new_data;
Uit het resultaat kunnen we zien:
- De eerste regel bevat het patroon „avs“ in de teamkolom, beginnend op positie 2 van de string.
- De tweede regel bevat het patroon „avs“ in de teamkolom, startpositie 2 in de string.
- De derde rij bevat niet het ‚avs‘-patroon in de teamkolom, dus wordt de waarde 0 geretourneerd.
Enzovoort.
Voorbeeld 2: Gebruik PRXMATCH om te controleren of de string een patroon bevat
De volgende code laat zien hoe je de PRXMATCH- functie kunt gebruiken om een nieuwe kolom te maken met de naam mavs_flag die de waarde 1 bevat als de teamkolomstring ergens in de string „avs“ bevat en een waarde van 0 als dat niet het geval is:
/*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;
Houd er rekening mee dat de i aan het einde van de reguliere expressie aangeeft dat SAS een hoofdletterongevoelige zoekopdracht moet uitvoeren.
Vergeet de i als u hoofdlettergevoelig wilt zoeken.
Voorbeeld 3: Gebruik PRXMATCH om de dataset te filteren op rijen die een patroon bevatten
De volgende code laat zien hoe u de PRXMATCH- functie kunt gebruiken om een nieuwe gegevensset te maken die alleen de rijen in my_data bevat die de tekenreeks ‚Mavs‘ (niet hoofdlettergevoelig) in de teamkolom hebben:
/*create dataset*/
data original_doriginal_data;
Merk op dat elk van de rijen in de nieuwe gegevensset „Mavs“ bevat in de teamkolom.
Aanvullende bronnen
In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:
Hoe getallen uit een string in SAS te extraheren
Hoe komma’s uit een tekenreeks in SAS te verwijderen
Tekenreeksen splitsen op scheidingsteken in SAS