Sas: der unterschied zwischen find und index
Sie können die Funktionen FIND und INDEX in SAS verwenden, um die Position des ersten Zeichens einer Teilzeichenfolge zurückzugeben, die innerhalb einer Zeichenfolge erscheint.
Der Unterschied zwischen diesen Funktionen besteht darin, dass Sie mit der FIND- Funktion zwei Dinge tun können, die mit der INDEX- Funktion nicht möglich sind:
- Mit FIND können Sie eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen.
- Mit FIND können Sie eine Startposition für die Suche angeben.
Die folgenden Beispiele veranschaulichen den Unterschied zwischen den Funktionen FIND und INDEX in der Praxis anhand des folgenden Datensatzes in SAS, der eine Satzspalte enthält:
/*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;
Beispiel 1: Verwendung von FIND und INDEX ohne Unterschiede
Der folgende Code zeigt, wie Sie mit den Funktionen FIND und INDEX die Position des ersten Vorkommens der Teilzeichenfolge „pig“ in der Ausdrucksspalte ermitteln:
/*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;
Beachten Sie, dass die Funktionen FIND und INDEX genau die gleichen Ergebnisse zurückgeben.
Die Spalten find_pig und index_pig Zeigt die Position des ersten Vorkommens der Teilzeichenfolge „Schwein“ in der Phrasenspalte an.
Beispiel 2: Verwendung von FIND und INDEX mit einer Suche ohne Berücksichtigung der Groß-/Kleinschreibung
Der folgende Code zeigt, wie Sie mit den Funktionen FIND und INDEX die Position des ersten Vorkommens des Wortes „PIG“ in der Ausdrucksspalte ermitteln:
/*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;
Mit dem Modifikator „i“ in der FIND- Funktion konnten wir eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung nach der Teilzeichenfolge „PIG“ in der Phrasenspalte durchführen.
Allerdings ist die INDEX- Funktion nicht in der Lage, eine Suche durchzuführen, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird, sodass sie für jede Zeile einfach 0 zurückgibt, da die Großbuchstaben-Teilzeichenfolge „PIG“ in keinem Satz vorhanden war.
Beispiel 3: Verwendung von FIND und INDEX mit einer bestimmten Startposition
Der folgende Code zeigt, wie Sie die FIND- Funktion verwenden, um die Teilzeichenfolge „Schwein“ in der Phrasenspalte ab Position 5 zu finden, während die INDEX- Funktion überhaupt nicht in der Lage ist, eine bestimmte Startposition zu verwenden:
/*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;
Die Funktion find_pig sucht ab Position 5 der Phrasenspalte nach der Teilzeichenfolge „pig“.
Die Funktion index_pig sucht einfach irgendwo in der Phrasenspalte nach der Teilzeichenfolge „Schwein“, da sie keine Startposition für die Suche angeben kann.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere allgemeine Funktionen in SAS verwenden:
So verwenden Sie die SUBSTR-Funktion in SAS
So verwenden Sie die COMPRESS-Funktion in SAS
So verwenden Sie die COALESCE-Funktion in SAS