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