एसएएस: फाइंड और इंडेक्स के बीच अंतर


आप किसी स्ट्रिंग के भीतर दिखाई देने वाले सबस्ट्रिंग के पहले अक्षर की स्थिति वापस करने के लिए SAS में FIND और INDEX फ़ंक्शंस का उपयोग कर सकते हैं।

इन फ़ंक्शंस के बीच अंतर यह है कि FIND फ़ंक्शन आपको दो चीज़ें करने की अनुमति देता है जो INDEX फ़ंक्शन नहीं कर सकता:

  • FIND आपको केस-असंवेदनशील खोज करने की अनुमति देता है।
  • FIND आपको खोज के लिए प्रारंभिक स्थिति निर्दिष्ट करने की अनुमति देता है।

निम्नलिखित उदाहरण एसएएस में निम्नलिखित डेटा सेट के साथ व्यवहार में FIND और INDEX फ़ंक्शन के बीच अंतर को दर्शाते हैं जिसमें एक वाक्य कॉलम होता है:

 /*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; 

उदाहरण 1: बिना किसी अंतर के FIND और INDEX का उपयोग करना

निम्नलिखित कोड दिखाता है कि अभिव्यक्ति कॉलम में सबस्ट्रिंग “पिग” की पहली घटना की स्थिति जानने के लिए FIND और INDEX फ़ंक्शंस का उपयोग कैसे करें:

 /*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 और INDEX फ़ंक्शंस बिल्कुल समान परिणाम लौटाते हैं।

Find_pig और Index_pig कॉलम वाक्यांश कॉलम में सबस्ट्रिंग “सुअर” की पहली घटना की स्थिति प्रदर्शित करें।

उदाहरण 2: केस-असंवेदनशील खोज के साथ FIND और INDEX का उपयोग करना

निम्नलिखित कोड दिखाता है कि अभिव्यक्ति कॉलम में “PIG” शब्द की पहली घटना की स्थिति जानने के लिए FIND और INDEX फ़ंक्शंस का उपयोग कैसे करें:

 /*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” संशोधक का उपयोग करके, हम वाक्यांश कॉलम में “PIG” सबस्ट्रिंग के लिए केस-असंवेदनशील खोज करने में सक्षम थे।

हालाँकि, INDEX फ़ंक्शन केस-असंवेदनशील खोज करने में सक्षम नहीं है, इसलिए यह प्रत्येक पंक्ति के लिए केवल 0 लौटाता है क्योंकि अपरकेस सबस्ट्रिंग “PIG” किसी भी वाक्य में मौजूद नहीं है।

उदाहरण 3: एक विशिष्ट प्रारंभिक स्थिति के साथ FIND और INDEX का उपयोग करना

निम्नलिखित कोड दिखाता है कि स्थिति 5 से शुरू होने वाले वाक्यांश कॉलम में सबस्ट्रिंग “पिग” को खोजने के लिए FIND फ़ंक्शन का उपयोग कैसे करें, जबकि INDEX फ़ंक्शन किसी विशिष्ट प्रारंभिक स्थिति का उपयोग करने में बिल्कुल भी सक्षम नहीं है:

 /*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 फ़ंक्शन वाक्यांश कॉलम की स्थिति 5 से प्रारंभ करके सबस्ट्रिंग ‘पिग’ की खोज करता है।

Index_pig फ़ंक्शन केवल वाक्यांश कॉलम में कहीं भी “पिग” सबस्ट्रिंग की खोज करता है क्योंकि यह खोज के लिए प्रारंभिक स्थिति निर्दिष्ट करने में सक्षम नहीं है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि एसएएस में अन्य सामान्य कार्यों का उपयोग कैसे करें:

एसएएस में SUBSTR फ़ंक्शन का उपयोग कैसे करें
एसएएस में कंप्रेस फ़ंक्शन का उपयोग कैसे करें
एसएएस में COALESCE फ़ंक्शन का उपयोग कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *