Sas: różnica między znajdź a indeksem


Możesz użyć funkcji ZNAJDŹ i INDEKS w SAS-ie, aby zwrócić pozycję pierwszego znaku podciągu, który pojawia się w ciągu.

Różnica między tymi funkcjami polega na tym, że funkcja ZNAJDŹ umożliwia wykonanie dwóch rzeczy, których funkcja INDEKS nie może wykonać:

  • ZNAJDŹ umożliwia wyszukiwanie bez uwzględniania wielkości liter.
  • ZNAJDŹ umożliwia określenie pozycji początkowej wyszukiwania.

Poniższe przykłady ilustrują różnicę pomiędzy funkcjami ZNAJDŹ i INDEKS w praktyce z następującym zbiorem danych w SAS-ie, który zawiera kolumnę zdaniową:

 /*create dataset*/
data original_data;
    input sentence $40. ;
    datalines ;
A pig is my favorite animal
My name is piglet
Pigs are so cute
Here is a baby pig
His name is piggy
;
run ;

/*view dataset*/
proc print data = original_data; 

Przykład 1: Używanie funkcji ZNAJDŹ i INDEKS bez różnic

Poniższy kod pokazuje, jak używać funkcji ZNAJDŹ i INDEKS , aby znaleźć pozycję pierwszego wystąpienia podłańcucha „pig” w kolumnie wyrażenia :

 /*find position of first occurrence of 'pig' in phrase column*/
data new_data;
    set original_data;
    find_pig = find (phrase, 'pig');
    index_pig = index (phrase, 'pig');
run ;

/*view results*/
proc print data = new_data;

Należy pamiętać, że funkcje ZNAJDŹ i INDEKS zwracają dokładnie te same wyniki.

Kolumny find_pig i indeks_pig wyświetlić pozycję pierwszego wystąpienia podciągu „świnia” w kolumnie frazy .

Przykład 2: Używanie funkcji FIND i INDEX przy wyszukiwaniu bez uwzględniania wielkości liter

Poniższy kod pokazuje, jak używać funkcji ZNAJDŹ i INDEKS , aby znaleźć pozycję pierwszego wystąpienia słowa „PIG” w kolumnie wyrażenia :

 /*find position of first occurrence of 'PIG' in phrase column*/
data new_data;
    set original_data;
    find_pig = find (phrase, 'PIG', 'i');
    index_pig = index (phrase, 'PIG');
run ;

/*view results*/
proc print data =new_data;

Używając modyfikatora „i” w funkcji ZNAJDŹ , mogliśmy przeprowadzić wyszukiwanie bez uwzględniania wielkości liter podciągu „PIG” w kolumnie frazy.

Jednakże funkcja INDEX nie jest w stanie przeprowadzić wyszukiwania bez uwzględniania wielkości liter, więc po prostu zwróciła 0 dla każdego wiersza, ponieważ podciąg wielkich liter „PIG” nie istniał w żadnym zdaniu.

Przykład 3: Używanie funkcji ZNAJDŹ i INDEKS z określoną pozycją początkową

Poniższy kod pokazuje, jak użyć funkcji ZNAJDŹ , aby znaleźć podciąg „świnia” w kolumnie frazy , zaczynając od pozycji 5, podczas gdy funkcja INDEX w ogóle nie ma możliwości użycia określonej pozycji początkowej:

 /*find position of first occurrence of 'pig' in phrase column starting at position 5*/
data new_data;
    set original_data;
    find_pig = find (phrase, 'pig', 5 );
    index_pig = index (phrase, 'pig');
run ;

/*view results*/
proc print data = new_data;

Funkcja find_pig wyszukuje podciąg „świnia”, zaczynając od pozycji 5 kolumny frazy .

Funkcja indeks_pig po prostu wyszukuje podciąg „świnia” w dowolnym miejscu kolumny frazy , ponieważ nie jest w stanie określić pozycji początkowej wyszukiwania.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak używać innych popularnych funkcji w SAS-ie:

Jak korzystać z funkcji SUBSTR w SAS-ie
Jak korzystać z funkcji COMPRESS w SAS-ie
Jak korzystać z funkcji COALESCE w SAS-ie

Dodaj komentarz

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