Sas: find ve index arasındaki fark
Bir dize içinde görünen bir alt dizenin ilk karakterinin konumunu döndürmek için SAS’taki FIND ve INDEX işlevlerini kullanabilirsiniz.
Bu işlevler arasındaki fark, BUL işlevinin, INDEX işlevinin yapamadığı iki şeyi yapmanıza olanak sağlamasıdır:
- FIND, büyük/küçük harfe duyarlı olmayan bir arama yapmanızı sağlar.
- BUL, arama için bir başlangıç konumu belirtmenize olanak tanır.
Aşağıdaki örnekler, SAS’ta bir cümle sütunu içeren aşağıdaki veri kümesiyle pratikte FIND ve INDEX işlevleri arasındaki farkı göstermektedir :
/*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;
Örnek 1: FIND ve INDEX’i farksız kullanma
Aşağıdaki kod, ifade sütununda “domuz” alt dizesinin ilk geçtiği konumu bulmak için FIND ve INDEX işlevlerinin nasıl kullanılacağını gösterir:
/*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;
FIND ve INDEX işlevlerinin tam olarak aynı sonuçları döndürdüğünü unutmayın.
Find_pig ve index_pig sütunları “domuz” alt dizesinin tümcecik sütununda ilk geçtiği konumu görüntüler.
Örnek 2: FIND ve INDEX’i büyük/küçük harfe duyarlı olmayan bir aramayla kullanma
Aşağıdaki kod, ifade sütununda “PIG” sözcüğünün ilk geçtiği konumu bulmak için FIND ve INDEX işlevlerinin nasıl kullanılacağını gösterir:
/*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;
FIND işlevindeki “i” değiştiricisini kullanarak, ifade sütunundaki “PIG” alt dizesi için büyük/küçük harfe duyarlı olmayan bir arama gerçekleştirebildik.
Bununla birlikte, INDEX işlevi büyük/küçük harfe duyarlı olmayan bir arama gerçekleştiremez; bu nedenle, büyük harfli “PIG” alt dizisi hiçbir cümlede bulunmadığından, her satır için yalnızca 0 değerini döndürdü.
Örnek 3: FIND ve INDEX’i belirli bir başlangıç konumuyla kullanma
Aşağıdaki kod , INDEX işlevi belirli bir başlangıç konumunu hiçbir şekilde kullanamadığında, 5. konumdan başlayan tümcecik sütununda “domuz” alt dizesini bulmak için FIND işlevinin nasıl kullanılacağını gösterir :
/*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;
Find_pig işlevi, tümcecik sütununun 5. konumundan başlayarak ‘domuz’ alt dizesini arar.
index_pig işlevi, arama için bir başlangıç konumu belirleyemediğinden, kelime öbeği sütununun herhangi bir yerinde “domuz” alt dizesini arar.
Ek kaynaklar
Aşağıdaki eğitimlerde SAS’taki diğer yaygın işlevlerin nasıl kullanılacağı açıklanmaktadır:
SAS’ta SUBSTR işlevi nasıl kullanılır?
SAS’ta COMPRESS işlevi nasıl kullanılır?
SAS’ta COALESCE işlevi nasıl kullanılır?