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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert