Jak używać funkcji prxmatch w sas-ie (z przykładami)


Możesz użyć funkcji PRXMATCH w SAS-ie, aby wyszukać konkretny wzorzec w ciągu i zwrócić pozycję, w której wzorzec został znaleziony.

Ta funkcja wykorzystuje następującą podstawową składnię:

PRXMATCH(wyrażenie regularne, źródło)

Złoto:

  • wyrażenie regularne : wyrażenie regularne określające wzorzec do wyszukania
  • source : Nazwa zmiennej do wyszukania

Poniższe przykłady pokazują trzy typowe sposoby wykorzystania tej funkcji w praktyce z następującym zbiorem danych w SAS-ie:

 /*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; 

Przykład 1: Użyj PRXMATCH, aby znaleźć pozycję wzorca w ciągu

Poniższy kod pokazuje, jak użyć funkcji PRXMATCH do utworzenia nowej kolumny o nazwie position, która zawiera pozycję, w której w kolumnie zespołu pojawia się ciąg „avs”:

 /*create new dataset*/
data new_data;
    set my_data;
    position = prxmatch ("/avs/", team);
run ;

/*view new dataset*/
proc print data = new_data; 

Z wyniku możemy zobaczyć:

  • Pierwsza linia zawiera wzór „avs” w kolumnie zespołu, zaczynając od pozycji 2 ciągu.
  • Druga linia zawiera wzór „avs” w pozycji początkowej kolumny zespołu 2 w ciągu znaków.
  • Trzeci wiersz nie zawiera wzorca „avs” w kolumnie zespołu, dlatego zwracana jest wartość 0 .

I tak dalej.

Przykład 2: Użyj PRXMATCH, aby sprawdzić, czy ciąg zawiera wzorzec

Poniższy kod pokazuje, jak użyć funkcji PRXMATCH do utworzenia nowej kolumny o nazwie mavs_flag , która zawiera wartość 1 , jeśli ciąg kolumny zespołu zawiera „avs” w dowolnym miejscu ciągu, oraz wartość 0 , jeśli nie ma to miejsca:

 /*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; 

Zauważ, że i na końcu wyrażenia regularnego określa, że SAS powinien przeprowadzić wyszukiwanie bez uwzględniania wielkości liter.

Po prostu zapomnij o i , jeśli zamiast tego chcesz przeprowadzić wyszukiwanie z uwzględnieniem wielkości liter.

Przykład 3: Użyj PRXMATCH, aby przefiltrować zbiór danych pod kątem wierszy zawierających wzorzec

Poniższy kod pokazuje, jak używać funkcji PRXMATCH do tworzenia nowego zestawu danych zawierającego tylko wiersze w my_data , które w kolumnie zespołu zawierają ciąg „Mavs” (wielkość liter nie ma znaczenia):

 /*create dataset*/
data original_doriginal_data; 

Zwróć uwagę, że każdy wiersz w nowym zestawie danych zawiera „Mavs” w kolumnie zespół.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

Jak wyodrębnić liczby z ciągu w SAS-ie
Jak usunąć przecinki z ciągu w SAS
Jak podzielić ciągi znaków według ograniczników w SAS-ie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *