एसएएस में prxmatch फ़ंक्शन का उपयोग कैसे करें (उदाहरण के साथ)


आप स्ट्रिंग में एक विशिष्ट पैटर्न की खोज करने के लिए एसएएस में PRXMATCH फ़ंक्शन का उपयोग कर सकते हैं और उस स्थिति को वापस कर सकते हैं जिस पर पैटर्न पाया गया है।

यह फ़ंक्शन निम्नलिखित मूल सिंटैक्स का उपयोग करता है:

PRXMATCH(नियमित अभिव्यक्ति, स्रोत)

सोना:

  • नियमित अभिव्यक्ति : नियमित अभिव्यक्ति जो खोजे जाने वाले पैटर्न को निर्दिष्ट करती है
  • स्रोत : खोजने के लिए वेरिएबल का नाम

निम्नलिखित उदाहरण एसएएस में निम्नलिखित डेटासेट के साथ व्यवहार में इस फ़ंक्शन का उपयोग करने के तीन सामान्य तरीके दिखाते हैं:

 /*create dataset*/
data my_data;
    input team $points;
    datalines ;
Mavs 22
mavs 14
Warriors 23
Mavs 19
warriors 34
MAVS 40
WARRIORS 39
;
run ;

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

उदाहरण 1: एक स्ट्रिंग में पैटर्न की स्थिति जानने के लिए PRXMATCH का उपयोग करें

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

 /*create new dataset*/
data new_data;
    set my_data;
    position = prxmatch ("/avs/", team);
run ;

/*view new dataset*/
proc print data = new_data; 

परिणाम से हम देख सकते हैं:

  • पहली पंक्ति में स्ट्रिंग के स्थान 2 से शुरू होने वाले टीम कॉलम में पैटर्न “एवीएस” शामिल है।
  • दूसरी पंक्ति में स्ट्रिंग में टीम कॉलम की शुरुआती स्थिति 2 में पैटर्न “एवीएस” शामिल है।
  • तीसरी पंक्ति में टीम कॉलम में “avs” पैटर्न नहीं है इसलिए 0 का मान लौटाया जाता है।

और इसी तरह।

उदाहरण 2: यह जांचने के लिए PRXMATCH का उपयोग करें कि स्ट्रिंग में कोई पैटर्न है या नहीं

निम्नलिखित कोड दिखाता है कि mavs_flag नामक एक नया कॉलम बनाने के लिए PRXMATCH फ़ंक्शन का उपयोग कैसे करें जिसमें 1 का मान होता है यदि टीम कॉलम स्ट्रिंग में स्ट्रिंग में कहीं भी “avs” होता है और यदि ऐसा नहीं है तो 0 का मान होता है:

 /*create new dataset*/
data new_data;
    set my_data;
    if prxmatch("/Mavs/i", team) > 0 then mavs_flag = 1 ;
    else mavs_flag = 0 ;
run ;

/*view new dataset*/
proc print data = new_data; 

ध्यान दें कि रेगुलर एक्सप्रेशन के अंत में i निर्दिष्ट करता है कि एसएएस को केस-असंवेदनशील खोज करनी चाहिए।

यदि आप इसके बजाय केस-संवेदी खोज करना चाहते हैं तो बस i को भूल जाइए।

उदाहरण 3: पैटर्न वाली पंक्तियों के डेटासेट को फ़िल्टर करने के लिए PRXMATCH का उपयोग करें

निम्नलिखित कोड दिखाता है कि एक नया डेटासेट बनाने के लिए PRXMATCH फ़ंक्शन का उपयोग कैसे करें जिसमें my_data में केवल पंक्तियाँ शामिल हैं जिनमें टीम कॉलम में स्ट्रिंग “Mavs” (केस असंवेदनशील) है:

 /*create dataset*/
data original_doriginal_data; 

ध्यान दें कि नए डेटासेट की प्रत्येक पंक्ति में टीम कॉलम में “Mavs” शामिल है।

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

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

एसएएस में एक स्ट्रिंग से संख्याएँ कैसे निकालें
एसएएस में एक स्ट्रिंग से अल्पविराम कैसे हटाएं
एसएएस में डिलीमीटर द्वारा स्ट्रिंग्स को कैसे विभाजित करें

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

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