आर में त्रुटि कैसे ठीक करें: नाम पिछले नामों से मेल नहीं खाते


R में आपके सामने आने वाली एक सामान्य त्रुटि है:

 Error in match.names(clabs, names(xi)): 
  names do not match previous names

यह त्रुटि तब होती है जब आप दो डेटा फ़्रेम को बाइंड करने के लिए rbind() फ़ंक्शन का उपयोग करने का प्रयास करते हैं, लेकिन दो डेटा फ़्रेम के कॉलम नाम मेल नहीं खाते हैं।

यह ट्यूटोरियल उन सटीक चरणों को साझा करता है जिनका उपयोग आप इस त्रुटि को हल करने के लिए कर सकते हैं।

उदाहरण: “नाम पिछले नामों से मेल नहीं खाते” को कैसे ठीक करें

मान लीजिए कि हमारे पास R में निम्नलिखित दो डेटा फ़्रेम हैं:

 #create and view first data frame
df1 <- data. frame (var1=c(1, 3, 3, 4, 5),
                  var2=c(7, 7, 8, 3, 2))

df1

  var1 var2
1 1 7
2 3 7
3 3 8
4 4 3
5 5 2

#create and view first second frame 
df2 <- data. frame (var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

df2

  var3 var4
1 3 1
2 3 1
3 6 2
4 6 8
5 8 9

यदि हम इन दो डेटा फ़्रेमों को बाइंड करने के लिए rbind() फ़ंक्शन का उपयोग करने का प्रयास करते हैं, तो हमें एक त्रुटि मिलेगी:

 #attempt to row bind the two data frames
rbind(df1, df2)

Error in match.names(clabs, names(xi)): 
  names do not match previous names

हमें यह त्रुटि इसलिए मिली क्योंकि दो डेटा फ़्रेम के कॉलम नाम मेल नहीं खाते।

पहले डेटा फ़्रेम में निम्नलिखित कॉलम नाम हैं:

  • var1
  • var2

और दूसरे डेटा फ़्रेम में निम्नलिखित कॉलम नाम हैं:

  • var3
  • var4

हम यह जांचने के लिए निम्नलिखित कोड का भी उपयोग कर सकते हैं कि दो डेटा फ़्रेमों के बीच कॉलम नाम समान हैं या नहीं:

 #check if column names are identical between two data frames
identical(names(df1), names(df2))

[1] FALSE

हम देख सकते हैं कि कॉलम नाम समान नहीं हैं।

इस त्रुटि को ठीक करने के लिए, हम पहले डेटा फ्रेम में कॉलम नामों से मेल खाने के लिए दूसरे डेटा फ्रेम में कॉलम नामों का मैन्युअल रूप से नाम बदल सकते हैं:

 #define two data frames
df1 <- data. frame (var1=c(1, 3, 3, 4, 5),
                  var2=c(7, 7, 8, 3, 2))

df2 <- data. frame (var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

#rename second data frame columns
names(df2) <- c(' var1 ', ' var2 ')

#row bind the two data frames
rbind(df1, df2)

   var1 var2
1 1 7
2 3 7
3 3 8
4 4 3
5 5 2
6 3 1
7 3 1
8 6 2
9 6 8
10 8 9

हम देख सकते हैं कि rbind() ने कॉलम नामों के मेल खाने के बाद से दो डेटा फ़्रेमों को सफलतापूर्वक लिंक कर दिया है।

इस त्रुटि को ठीक करने का दूसरा तरीका पहले डेटा फ्रेम से दूसरे डेटा फ्रेम में कॉलम नामों को स्वचालित रूप से निर्दिष्ट करने के लिए नेम्स() फ़ंक्शन का उपयोग करना होगा:

 #define two data frames
df1 <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2))

df2 <- data. frame (var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

#rename second data frame columns
names(df2) <- names(df1)

#row bind the two data frames
rbind(df1, df2)

   var1 var2
1 1 7
2 3 7
3 3 8
4 4 3
5 5 2
6 3 1
7 3 1
8 6 2
9 6 8
10 8 9

फिर से, rbind() दो डेटा फ़्रेमों को सफलतापूर्वक बाइंड करने में सक्षम है क्योंकि वे समान कॉलम नाम साझा करते हैं।

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

R में rbind का उपयोग कैसे करें (उदाहरण के साथ)
R में cbind का उपयोग कैसे करें (उदाहरण के साथ)
R में डेटा फ़्रेम में पंक्तियाँ कैसे जोड़ें

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

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