एसएएस: मर्ज स्टेटमेंट में (in=a) का उपयोग कैसे करें


एसएएस में दो डेटा सेटों को मर्ज करते समय, आप IN स्टेटमेंट का उपयोग केवल उन पंक्तियों को वापस करने के लिए कर सकते हैं जहां किसी विशेष डेटा सेट में कोई मान मौजूद है।

व्यवहार में IN कथन का उपयोग करने के कुछ सामान्य तरीके यहां दिए गए हैं:

विधि 1: उन पंक्तियों को लौटाएँ जहाँ मान पहले डेटा सेट में मौजूद है (in=a)

 data final_data;
  merge data1 (in=a) data2;
  byID ;
  if a;
run ;

यह विशेष उदाहरण data1 और data2 नामक डेटा सेट को मर्ज करता है और केवल उन पंक्तियों को लौटाता है जहां data1 में कोई मान मौजूद है।

विधि 2: उन पंक्तियों को लौटाएँ जहाँ मान दूसरे डेटा सेट में मौजूद है (in=b)

 data final_data;
  merge data1 data2 (in=b);
  byID ;
  if b;
run ;

यह विशेष उदाहरण data1 और data2 नामक डेटा सेट को मर्ज करता है और केवल उन पंक्तियों को लौटाता है जिनके लिए data2 में कोई मान मौजूद है।

विधि 3: उन पंक्तियों को लौटाएँ जहाँ मान दोनों डेटासेट (in=a) और (in=b) में मौजूद है

 data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and b;
run ;

यह विशेष उदाहरण data1 और data2 नामक डेटा सेट को मर्ज करता है और केवल उन पंक्तियों को लौटाता है जहां data1 और data2 दोनों में कोई मान मौजूद होता है।

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित दो डेटासेट के साथ प्रत्येक विधि का अभ्यास में कैसे उपयोग किया जाए:

 /*create first dataset*/
data data1;
    inputIDGender $;
    datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;

title "data1";
proc print data = data1;

/*create second dataset*/
data data2;
    input IDSales;
    datalines ;
1 22
2 15
4 29
6 31
7 20
8 13
;
run ;

title "data2";
proc print data = data2; 

उदाहरण 1: सभी पंक्तियाँ लौटाएँ

हम आईडी कॉलम मान के आधार पर दो डेटासेट को मर्ज करने और दोनों डेटासेट से सभी पंक्तियों को वापस करने के लिए बिना किसी IN स्टेटमेंट के निम्नलिखित मर्ज स्टेटमेंट का उपयोग कर सकते हैं:

 /*perform merge*/
data final_data;
  merge data1 data2;
  byID ;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

ध्यान दें कि दोनों डेटासेट में सभी पंक्तियाँ लौटा दी जाती हैं, भले ही दोनों डेटासेट में आईडी मान मौजूद न होने के कारण मान गायब हों।

उदाहरण 2: उन पंक्तियों को लौटाएँ जहाँ मान पहले डेटा सेट में मौजूद है (in = a)

हम आईडी कॉलम में मान के आधार पर दो डेटासेट को मर्ज करने के लिए (in=a) के साथ निम्नलिखित मर्ज स्टेटमेंट का उपयोग कर सकते हैं और केवल उन पंक्तियों को वापस कर सकते हैं जहां पहले डेटासेट में मान मौजूद है:

 /*perform merge*/
data final_data;
  merge data1 (in = a) data2;
  byID ;
  if a;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

ध्यान दें कि केवल वही पंक्तियाँ लौटाई जाती हैं जिनके लिए पहले डेटा सेट में कोई मान मौजूद है।

उदाहरण 3: उन पंक्तियों को लौटाएँ जहाँ मान दूसरे डेटा सेट में मौजूद है (in=b)

हम आईडी कॉलम में मान के आधार पर दो डेटासेट को मर्ज करने के लिए (in=b) के साथ निम्नलिखित मर्ज स्टेटमेंट का उपयोग कर सकते हैं और केवल उन पंक्तियों को वापस कर सकते हैं जहां दूसरे डेटासेट में मान मौजूद है:

 /*perform merge*/
data final_data;
  merge data1 data2(in=b);
  byID ;
  if b;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

ध्यान दें कि केवल वे पंक्तियाँ लौटाई जाती हैं जिनके लिए दूसरे डेटा सेट में कोई मान मौजूद है।

उदाहरण 4: उन पंक्तियों को लौटाएँ जहाँ मान दोनों डेटासेट (in = a) और (in = b) में मौजूद है

हम आईडी कॉलम में मूल्य के आधार पर दो डेटा सेटों को मर्ज करने के लिए (in=a) और (in=b) के साथ निम्नलिखित मर्ज स्टेटमेंट का उपयोग कर सकते हैं और केवल उन पंक्तियों को वापस कर सकते हैं जहां डेटा के दोनों सेटों में एक मान मौजूद है:

 /*perform merge*/
data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and b;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

ध्यान दें कि केवल वे पंक्तियाँ लौटाई जाती हैं जिनके लिए दोनों डेटा सेट में कोई मान मौजूद है।

नोट : आप एसएएस मर्ज स्टेटमेंट के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

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

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

एसएएस में लेफ्ट जॉइन कैसे करें
एसएएस में इनर जॉइन कैसे करें
एसएएस में बाहरी जुड़ाव कैसे करें

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

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