एसएएस: यदि ए बी नहीं है तो विलय कैसे करें
आप एसएएस में दो डेटासेट को मर्ज करने के लिए निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं और केवल उन पंक्तियों को लौटा सकते हैं जिनके लिए मान पहले डेटासेट में मौजूद है, दूसरे में नहीं:
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not 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;
यदि हम आईडी कॉलम के मूल्य के आधार पर दो डेटासेट को मर्ज करने के लिए निम्नलिखित मर्ज स्टेटमेंट का उपयोग करते हैं, तो सभी पंक्तियाँ दोनों डेटासेट से वापस आ जाएंगी:
/*perform merge*/
data final_data;
merge data1 data2;
byID ;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
हालाँकि, हम IN कथनों का उपयोग केवल उन पंक्तियों को वापस करने के लिए कर सकते हैं जहाँ मान पहले डेटा सेट में मौजूद है, दूसरे डेटा सेट में नहीं :
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not b;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
ध्यान दें कि केवल वे पंक्तियाँ लौटाई जाती हैं जिनके लिए मान पहले डेटा सेट में मौजूद है, न कि दूसरे डेटा सेट में।
नोट : आप एसएएस मर्ज स्टेटमेंट के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि एसएएस में अन्य सामान्य कार्य कैसे करें:
एसएएस में लेफ्ट जॉइन कैसे करें
एसएएस में इनर जॉइन कैसे करें
एसएएस में बाहरी जुड़ाव कैसे करें