Sas: perbedaan antara find dan index
Anda dapat menggunakan fungsi FIND dan INDEX di SAS untuk mengembalikan posisi karakter pertama substring yang muncul dalam string.
Perbedaan antara fungsi-fungsi ini adalah fungsi FIND memungkinkan Anda melakukan dua hal yang tidak dapat dilakukan oleh fungsi INDEX :
- FIND memungkinkan Anda melakukan pencarian yang tidak peka huruf besar-kecil.
- FIND memungkinkan Anda menentukan posisi awal untuk pencarian.
Contoh berikut mengilustrasikan perbedaan antara fungsi FIND dan INDEX dalam praktiknya dengan kumpulan data berikut di SAS yang berisi kolom kalimat:
/*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;
Contoh 1: Menggunakan FIND dan INDEX tanpa perbedaan
Kode berikut menunjukkan cara menggunakan fungsi FIND dan INDEX untuk menemukan posisi kemunculan pertama substring “babi” di kolom ekspresi :
/*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;
Perhatikan bahwa fungsi FIND dan INDEX memberikan hasil yang persis sama.
Kolom find_pig dan index_pig menampilkan posisi kemunculan pertama substring “babi” pada kolom frase .
Contoh 2: Menggunakan FIND dan INDEX dengan pencarian yang tidak peka huruf besar-kecil
Kode berikut menunjukkan cara menggunakan fungsi FIND dan INDEX untuk mencari posisi kemunculan pertama kata “PIG” di kolom ekspresi :
/*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;
Dengan menggunakan pengubah “i” dalam fungsi FIND , kami dapat melakukan penelusuran peka huruf besar-kecil untuk substring “PIG” di kolom frasa.
Namun, fungsi INDEX tidak dapat melakukan pencarian yang tidak peka huruf besar-kecil, sehingga hanya mengembalikan 0 untuk setiap baris karena substring huruf besar “PIG” tidak ada dalam kalimat mana pun.
Contoh 3: Menggunakan FIND dan INDEX dengan posisi awal tertentu
Kode berikut menunjukkan cara menggunakan fungsi FIND untuk mencari substring “babi” pada kolom frasa yang dimulai dari posisi 5 sedangkan fungsi INDEX sama sekali tidak mampu menggunakan posisi awal tertentu:
/*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;
Fungsi find_pig mencari substring ‘babi’ mulai dari posisi 5 kolom frase .
Fungsi index_pig hanya mencari substring “babi” di mana saja di kolom frasa karena tidak mampu menentukan posisi awal pencarian.
Sumber daya tambahan
Tutorial berikut menjelaskan cara menggunakan fungsi umum lainnya di SAS:
Cara menggunakan fungsi SUBSTR di SAS
Cara menggunakan fungsi COMPRESS di SAS
Cara menggunakan fungsi COALESCE di SAS