हटाएं आज सुबह डेटा फ्रेम के साथ कुछ विश्लेषण करते समय मुझे डुप्लिकेट कॉलम नामों की उपस्थिति के कारण त्रुटि मिली। मैंने विशेष रूप से dplyr का उपयोग करके समाधान खोजने की कोशिश की लेकिन मुझे कुछ भी नहीं मिला जो काम करता है। समस्या का वर्णन करने के लिए यहां एक उदाहरण दिया गया है। एक डुप्लिकेट कॉलम नाम के साथ एक डेटा फ्रेम।डुप्लीकेट कॉलम dplyr
x <- data.frame(matrix(c(1, 2, 3),
c(2,2,1),nrow=2,ncol=3))
colnames(x) <- c("a", "a", "b")
जब मैं मूल्य
द्वारा फिल्टर करने के लिए चयन करें आदेश मैं एक त्रुटिx %>%
select(-1)%>%filter(b>1)
Error: found duplicated column name: a
मैं आसानी से स्तंभ से छुटकारा पा सकते पारंपरिक अनुक्रमण का उपयोग कर पाने और dplyr का उपयोग कर का उपयोग करते हुए पहले कॉलम ड्रॉप करने की कोशिश
x<-x[,-1]%>%filter(b>1)
कौन सा वांछित आउटपुट का उत्पादन
> x
a b
1 2 3
2 2 3
केवल dplyr व्याकरण का उपयोग करके इसे करने के तरीके पर कोई विचार?
नाम बदलने सकता है अच्छी तरह से आधार आर में पहले स्तंभ से छुटकारा पाने के लिए चाहते थे, तो "सही" रास्ता शायद 'x [! डुप्लिकेट (नाम (x), सेला = TRUE)]'। बस इसे dplyr के 'select' क्रिया में टॉस करने का एक तरीका खोजें। हू, यहां तक कि 'x%>% चयन (2,3)' काम नहीं करता है, 'चयन' खंड को देखने से पहले एलएचएस के बारे में चिल्ला रहा है। मैं उसे एक बग कहूंगा। क्रूड वर्कअराउंड: 'x%>% do (। [! डुप्लीकेट (नाम (।), सेला = TRUE)]) – Frank
मैं आमतौर पर कानूनी रूप से सबकुछ नाम बदलने के लिए 'make.names' का उपयोग करता हूं। – alistaire
यदि आप चारों ओर खुदाई करते हैं तो मुझे लगता है कि आपको बुराई की जड़ मिल जाएगी, इस तथ्य में निहित है कि प्लीयर और डिपर डेटा चुनने के लिए कॉलम नामों का उपयोग करते हैं। यह आवश्यक है कि कॉलम के अद्वितीय नाम हों, यह नाम और सामग्री द्वारा नहीं चुना जाता है। मूल पैकेज इंडेक्स का उपयोग करता है, जो पैराडाइम्स नामकरण के संबंध में काम करेगा। यह पैकेज की एक सीमा है, जो अधिकांश समय सीमा के बराबर है। – sconfluentus