मुख्य सामग्री पर जाएं

R में डेटासेट्स को मर्ज करना

इस ट्यूटोरियल में, आप R में कई डेटासेट्स को जोड़ना सीखेंगे।
अपडेट किया गया 25 सित॰ 2026  · 8 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

व्यावहारिक परिदृश्य में, डेटा अलग-अलग सर्वरों पर होस्ट होता है और कई अलग-अलग फाइलों में मौजूद रहता है। जब आवश्यक डेटा कई स्रोतों से आता है, तो उन्हें इस तरह एकीकृत करना आना जरूरी है कि जानकारी का नुकसान न्यूनतम हो और जो पेयरिंग आप बनाएं, वे आपके डेटा की संरचना के अनुसार अर्थपूर्ण हों।

यह ट्यूटोरियल आपको बताएगा:

  • डेटासेट्स को क्षैतिज और ऊर्ध्वाधर रूप से मर्ज करना
  • प्राइमरी की क्या होती है और वह आपके डेटा में संरचना कैसे जोड़ती है
  • विभिन्न प्रकार के जॉइन (जैसे, लेफ्ट-जॉइन, इनर-जॉइन, फुल-जॉइन) और उनके बीच चुनाव कैसे करें
  • एक सामान्य समस्या जिस पर ध्यान देना है और उसे कैसे हल करें

डेटासेट्स जोड़ना (Concatenating)

उच्च स्तर पर, आप दो तरीकों से डेटासेट्स मर्ज कर सकते हैं; या तो आप और पंक्तियाँ जोड़कर जानकारी बढ़ाते हैं या अपने डेटासेट में और कॉलम जोड़कर। सामान्यतः, जब आपके पास एक जैसे कॉलम सेट वाले डेटासेट्स हों या एक जैसी ऑब्जर्वेशन (पंक्तियाँ) हों, तो आप उन्हें क्रमशः ऊर्ध्वाधर या क्षैतिज रूप से जोड़ सकते हैं। आइए कुछ उदाहरणों से सीखते हैं।

डेटासेट्स को ऊर्ध्वाधर रूप से जोड़ना

जब आपके पास कई डेटासेट्स हों जिनमें कॉलम का सेट समान हो, तो आप एक डेटासेट को दूसरे से ऊर्ध्वाधर रूप से जोड़ सकते हैं। यानी, अपने डेटासेट के कॉलम्स को रखते हुए, आप उसमें और पंक्तियाँ जोड़ सकते हैं। ऐसी जानकारी एक फाइल में होने से एग्रीगेट करना और समग्र चित्र देखना आसान हो जाता है, बिना कई फाइलों के बीच इधर-उधर स्विच किए और उनका ट्रैक खोए।

डेटासेट 1

Make Num models
Honda 63
BMW 10

डेटासेट 2

Make Num models
Ford 26
Tesla 4

यह ध्यान देने योग्य है कि यदि आपके पास एक ही ऑब्जर्वेशन कई डेटासेट्स में है और आप उन्हें rbind() का उपयोग करके ऊर्ध्वाधर रूप से जोड़ते हैं, तो आपकी टेबल में डुप्लिकेट ऑब्जर्वेशन हो जाएंगे। और यद्यपि दोनों डेटासेट्स में वेरिएबल्स (अर्थात कॉलम) का सेट समान होना चाहिए, उनका क्रम एक जैसा होना आवश्यक नहीं है। नीचे दिए गए कंसोल में खुद देखें!

आपके वर्कस्पेस में ऊपर दिखाए गए dataset1 और dataset2 नाम के दो डेटासेट्स मौजूद हैं। dataset1 के कॉलम्स का क्रम बदलकर देखें। dataset1 और dataset2 के साथ-साथ reordered_dataset1 और dataset2 पर rbind() कॉल करें।

dataset1 <- data.frame(make = c("Honda", "BMW"), num_models = c(63, 10)) dataset2 <- data.frame(make = c("Ford", "Tesla"), num_models = c(26, 4)) # Add datasets vertically rbind(dataset1, dataset2) # Reorder columns reordered_dataset1 <- dataset1[, c(2, 1)] # See that rbind() is robust to column ordering rbind(reordered_dataset1, dataset2)

rbind() के बाद, आपके परिणाम एक ही टेबल में सभी चार कार निर्माताओं की जानकारी कुछ इस तरह देंगे:

ऊर्ध्वाधर रूप से जोड़ा गया डेटासेट

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

R निःशुल्क सीखना शुरू करें

R परिचय

BasicSkill Level
4 घंटा
3.1M learners
R में डेटा विश्लेषण की मूल बातें सीखें, जिसमें vectors, lists, और data frames शामिल हैं, और वास्तविक data sets के साथ R का अभ्यास करें।
See DetailsRight Arrow
Start Course

इंटरमीडिएट R

BasicSkill Level
6 घंटा
677.8K learners
कंडीशनल स्टेटमेंट्स, लूप्स और वेक्टर फ़ंक्शंस सीखकर R निंजा बनने की अपनी यात्रा जारी रखें।

डेटासेट्स को क्षैतिज रूप से जोड़ना

जब आपके पास एक ही ऑब्जर्वेशन सेट का प्रतिनिधित्व करने वाले डेटासेट्स हों, तो आप ऐसे डेटासेट्स को क्षैतिज रूप से जोड़ सकते हैं। इस बार, अपने डेटासेट की पंक्तियों को रखते हुए, आप उसमें और कॉलम जोड़ सकते हैं। ऐसे मामलों में, आपको यह जाँचना चाहिए कि ऑब्जर्वेशन का क्रम समान है। यदि आपके डेटासेट्स में पंक्तियों की संख्या अलग है, या पंक्तियों की संख्या समान है लेकिन उनका क्रम असंगत है, तो आप कॉलम सेट्स को ऐसे पेयर कर सकते हैं जो तार्किक न हों।

ऊपर के उदाहरण का विस्तार करते हैं। मान लीजिए आपके पास दो डेटा फाइलें हैं: एक में कार का मेक और उपलब्ध यूनिक मॉडलों की संख्या है, और दूसरी में कार का मेक और कुल बिक्री:

उपलब्ध यूनिक मॉडलों की संख्या

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

कुल बिक्री

Make Sales
Ford 119157
BMW 25908
Honda 188328
Tesla 29975

यह ध्यान देने योग्य है कि यदि आपके पास एक ही ऑब्जर्वेशन कई डेटासेट्स में है और आप उन्हें cbind() का उपयोग करके क्षैतिज रूप से जोड़ते हैं, तो आपकी टेबल में अनावश्यक दोहराए गए कॉलम हो जाएंगे। और भले ही दोनों डेटासेट्स में संबंधित जानकारी हो, पंक्तियों का क्रम मायने रखता है!

नीचे दिए गए कंसोल में, models और sales पर cbind() कॉल करें और परिणाम प्रिंट करें:

models <- data.frame(make = c("Honda", "BMW", "Ford", "Tesla"), num_models = c(63, 10, 26, 4)) sales <- data.frame(make = c("Ford", "BMW", "Honda", "Tesla"), sales = c(119157, 25908, 188328, 29975)) # Add datasets horizontally cbind(models, sales)

आपको कुछ ऐसा मिला होगा:

Models & Sales

Make Num models Make Sales
Honda 63 Ford 119157
BMW 10 BMW 25908
Ford 26 Honda 188328
Tesla 4 Tesla 29975

क्या आप यहाँ समस्या देख रहे हैं? यह डेटा टाइडी नहीं है!

इस आधारभूत कोर्स में सिखाए गए टाइडी डेटा के सिद्धांतों के अनुसार, किसी डेटासेट की हर ऑब्जर्वेशन एक यूनिक पंक्ति में दर्शाई जानी चाहिए। और अगर आपके पास किसी एक डेटासेट में केवल कुछ पंक्तियों की जानकारी हो और आप केवल उन्हीं के लिए जानकारी जोड़ना चाहें जिन पर आपके पास अधिक जानकारी है? दूसरे शब्दों में, यदि आप एक डेटासेट से दूसरे में और कॉलम जोड़ना चाहें, लेकिन इन डेटासेट्स में ऑब्जर्वेशन की संख्या समान न हो तो?

प्राइमरी की और फॉरेन कीज

डेटासेट्स को मिलाने की शुरुआत करने पर पहला कदम है अपने डेटासेट की प्राइमरी की ढूँढ़ना। प्राइमरी की वह कॉलम या कॉलम्स का समूह है जो आपके डेटासेट में प्रत्येक ऑब्जर्वेशन की विशिष्ट पहचान करता है। कार मेक, यूनिक मॉडलों की संख्या और कुल बिक्री वाले उदाहरण में, आपके डेटासेट्स की प्राइमरी की make कॉलम है।

अब, हम joins कर सकते हैं—जो डेटासेट्स को एक टेबल में मर्ज करने का मानक तरीका है।

जॉइन के प्रकार

जॉइन के कई प्रकार होते हैं। आप Joining Data in R with dplyr कोर्स में सीख सकते हैं कि म्यूटेटिंग जॉइन के जरिए एक डेटासेट के कॉलम्स को दूसरे के कॉलम्स से कैसे बढ़ाया जाए, फिल्टरिंग जॉइन से एक डेटासेट को दूसरे के मुकाबले कैसे फिल्टर करें, और सेट ऑपरेशन्स से डेटासेट्स को कैसे छाँटें। नीचे कुछ सबसे आम प्रकार दिए गए हैं।

left_join(x, y): x की सभी पंक्तियाँ, और x व y के सभी कॉलम लौटाता है। जिन पंक्तियों का y में मिलान नहीं है, उनके नए कॉलम्स में NA होगा। यदि x और y के बीच कई मैच हों, तो सभी संयोजन लौटाए जाते हैं।

inner_join(x, y): x की वे सभी पंक्तियाँ लौटाता है जिनके लिए y में मिलान मौजूद है, और x व y के सभी कॉलम। यदि x और y के बीच कई मैच हों, तो सभी संयोजन लौटाए जाते हैं।

full_join(x, y): x और y दोनों की सभी पंक्तियाँ और सभी कॉलम लौटाता है। जहाँ मिलान नहीं है, वहाँ अनुपस्थित पक्ष के लिए NA लौटाया जाता है।

ऊपर बताए गए जॉइन म्यूटेटिंग जॉइन के उदाहरण हैं, क्योंकि ये दो डेटासेट्स के वेरिएबल्स को संयोजित करते हैं।

गायब कीज

मान लीजिए आपके पास दो डेटासेट्स हैं। पहला डेटासेट size कहलाता है और इसमें लोगों के नाम और उनकी शर्ट का साइज है:

 > size
name size
1  Tom    M
2  Dan   XL
3 Keil    S

दूसरा डेटासेट color कहलाता है और इसमें लोगों के सरनेम, शर्ट के रंग की पसंद, और कुछ जानकारी row.names एट्रिब्यूट में संग्रहीत है:

 > color
     surname color
Tom     Jeon  <NA>
Dan    Smith  Dark
Bob McLadden Light

ध्यान दें कि यहाँ क्या गलत हो सकता है? जब कीज गायब हों या डुप्लिकेट हों तो दो-टेबल जॉइन जटिल हो सकते हैं। इस उदाहरण में, R के डेटा फ्रेम महत्वपूर्ण जानकारी को row.names एट्रिब्यूट में स्टोर करते हैं। जब ऐसा होता है, तो आप जॉइन फ़ंक्शन से उस की तक पहुँच नहीं पाएँगे, क्योंकि जॉइन फ़ंक्शन केवल डेटा फ्रेम के कॉलम्स तक ही पहुँच सकते हैं।

इस समस्या को आसानी से ठीक करने की तरकीब है tibble पैकेज का rownames_to_column() फ़ंक्शन उपयोग करना। यह आपके डेटासेट की एक कॉपी लौटाता है जिसमें रो नेम्स को डेटा में एक कॉलम के रूप में जोड़ दिया जाता है। rownames_to_column() का पहला आर्ग्युमेंट आपका डेटा फ्रेम ऑब्जेक्ट होता है और दूसरा आर्ग्युमेंट उस कॉलम का नाम बताने वाली स्ट्रिंग होती है जिसे आप जोड़ना चाहते हैं।

नीचे दिए गए कंसोल में अन्वेषण करके देखें। डेटासेट्स size और color आपके वर्कस्पेस में पहले से लोड हैं।

color <- data.frame(surname = c("Jeon", "Smith", "McLadden"), color = c(NA, "Dark", "Light")) row.names(color) <- c("Tom", "Dan", "Bob") size <- data.frame(name = c("Tom", "Dan", "Keil"), size = c("M", "XL", "S")) # Explore here!

अंतिम विचार

वास्तविक दुनिया में, डेटा कई डेटासेट्स और कई अलग-अलग फॉर्मैट्स में बँटा हो सकता है। चूँकि R एकल टेबल्स के साथ काम करने के लिए डिज़ाइन किया गया है, इसलिए डेटासेट्स में हेरफेर कर उन्हें एक टेबल में संयोजित करना एक आवश्यक कौशल है। Importing & Cleaning Data with R स्किल ट्रैक पूरा करें और किसी भी फॉर्मैट में डेटा को पार्स और संयोजित करना सीखें। DataCamp का R Data Import ट्यूटोरियल भी देखें। सीखते रहिए!

विषय
R
डेटा साइंस
डेटा विश्लेषण

R के बारे में और जानें

कोर्स

R परिचय

4 घंटा
3.1M
R में डेटा विश्लेषण की मूल बातें सीखें, जिसमें vectors, lists, और data frames शामिल हैं, और वास्तविक data sets के साथ R का अभ्यास करें।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें
और देखेंRight Arrow