2012-11-05 15 views
6

यह read.csv row.names और https://stackoverflow.com/questions/12425599/duplicated-row-names के समान है, लेकिन मुझे मदद के उत्तर दिखाई नहीं देते हैं।तालिका पढ़ने में त्रुटि 'row.names' डुप्लिकेट करें। row.names = NULL कॉलम

समस्या: फ़ाइल में पढ़ने की कोशिश कर रहा है जिसमें पहले कॉलम में डुप्लिकेट संख्याएं हैं, लेकिन पंक्ति.नाम = NULL जब कॉलम हेडर को स्थानांतरित करती है।

मैं आर में निम्न फ़ाइल को पढ़ने के लिए कोशिश कर रहा हूँ

TripId VID TspVID VWT VCLS Week 

201110041426 2226 33889 1 0 41 

201110041501 2226 33889 1 0 41 

201110041510 2226 33889 1 0 41 

201110041557 2226 33889 1 0 41 

(इस हज़ारों पंक्तियों का और ~ 200 कॉलम के साथ CSV फ़ाइल का एक्सेल से एक छोटे से अंश है। का एक ही संख्या में हैं सभी दूसरों के रूप में पहली पंक्ति में प्रविष्टियों। पहली पंक्ति में डुप्लिकेट हैं। कॉलम इस दृश्य में लेबल के साथ नहीं मिलाया गया है, लेकिन उन्हें सीएसवी अंतरिक्ष में है।)

आदेश

> lm.table <- read.table(file= file.in, sep=",", header=TRUE) 
Error in read.table(file = file.in, sep = ",", header = TRUE) : 
    duplicate 'row.names' are not allowed 

काम नहीं करता है। Row.names के लिए पहले कॉलम का उपयोग करने का तात्पर्य है कि पहली पंक्ति में दूसरों की तुलना में कम मान हैं, जो मामला नहीं है। मैं निश्चित रूप से पहले कॉलम को पंक्ति.नाम के रूप में नहीं चाहता हूं।

मैं सेट करने का प्रयास row.names = शून्य

> lm.table <- read.table(file= file.in, sep=",", header=TRUE, row.names=NULL) 

जो चलाता है, लेकिन कॉलम में स्थानांतरित कर दिया गया है

> head(lm.table) 

    row.names TripId VID TspVID VWT VCLS  Week  Date TimeStart TimeEnd  Lat1 

1 201110010006 2226 33889  1 0 40 2011/09/30 17:06:37 17:25:16 47.5168 -122.209 

2 201110010028 2226 33889  1 0 40 2011/09/30 17:28:45 17:43:14 47.5517 -122.058 

3 201110010000 2231 45781  1 0 40 2011/09/30 17:00:00 18:02:30 32.9010 -117.193 

4 201110011407 2231 45781  1 0 40 2011/10/01 07:07:57 07:48:17 32.7044 -117.004 

ध्यान दें कि नया स्तंभ का नाम "row.names शुरू किया गया है और पूरी पंक्ति सही स्थानांतरित हो गई।

यहां> सिर (lm.table) परिणाम का पूंछ अंत है। यह कॉलम लेबल को एक अपरिभाषित कॉलम पर स्थानांतरित कर दिया गया है (मुझे लगता है कि यह कॉलम की संख्या भी दिखाता है लेबल = स्तंभों की संख्या है, जो निरीक्षण से भी सही है।)

 FVavR FVstdR FIdlR 

1 3.959140  2 NA 

2 5.285770  20 NA 

3 4.274140  26 NA 

किसी भी विचार क्यों मैं स्तंभों में स्थानांतरण हो और कैसे बदलाव नहीं करने के लिए और row.names बस संख्या आरोही जा है?

+0

आपके फ़ील्ड नामों में कोई विषम वर्ण? क्या आपने 'read.table' के बजाय' read.csv' को आजमाया है? यह 'सीपी' और 'हेडर' निर्दिष्ट करता है और 'fill = TRUE' सेट करता है (हालांकि आप कहते हैं कि सभी पंक्तियों में प्रविष्टियों की संख्या समान है)। – seancarmody

उत्तर

0

मैं निम्नलिखित कोड का इस्तेमाल किया:

lm.table <- read.table("file name", header=TRUE, row.names=NULL) 

यह क्रमांकित पंक्ति नाम के साथ बाईं ओर एक स्तंभ जोड़ा है, लेकिन मैं नहीं मिला है कि स्तंभ नाम स्थानांतरित कर दिया गया। क्या यह हो सकता है कि आपके कॉलम नाम अभी भी सही कॉलम से मेल खाते हैं, लेकिन आर आउटपुट ने इसे नामों की तरह दिखने के लिए बनाया है?

+0

कॉलम निश्चित रूप से स्थानांतरित किए गए हैं। जैसा कि मैंने नीचे बताया है, एक पिछला कॉमा है। यह "row.names" का कारण मौजूदा डेटा कॉलम को ले जाने का कारण बनता है और दूसरों को अभी भी एक रहस्य है। –

5

एक ही समस्या थी। बस इस लाइन को जोड़ा गया:

colnames(rec) <- c(colnames(rec)[-1],"x") 
rec$x <- NULL 
+1

मुझे लगता है कि आप इसे 'कॉलनाम (आरईसी) <- सी (उपनाम (आरईसी) [- 1], न्यूल) के रूप में एक पंक्ति में जोड़ सकते हैं। – Cole

0

मुझे एक ही समस्या थी। मैंने टाइमस्टैम्प के साथ तिथि विलय कर दी और अब मैं सीएसवी से पढ़ने में सक्षम हूं।

आप अपने सीएसवी में पहले कॉलम (पायथन का उपयोग करके) के रूप में एक पंक्ति संख्या उत्पन्न कर सकते हैं और फिर इसे फिर से पढ़ सकते हैं।

0

मेरे समस्या टैब-सीमांकित फ़ाइल के लिए क्षेत्र विभाजक के साथ जुड़ा हुआ है:

मैं क्षेत्र विभाजक निर्दिष्ट नहीं करते हैं: मैं सितम्बर = टैब जोड़ देते हैं तो

> condensed <- read.table("condense_report.tab", header=T) 
Error in read.table("condense_report.tab", header = T) : 
duplicate 'row.names' are not allowed 

condensed <- read.table("condense_report.tab", header=TRUE, sep="\t") 

फिर कोई त्रुटि संदेश नहीं है।

यहाँ मेरी फाइल की सामग्री है (^ मैं टैब चरित्र है, और $ लाइन मार्क का अंत है):

नमूना^Imethod^Ispecies^Imean_frac^Istd_frac^Imean_dep^Imean_clsz^Inumrep $ asterix_potion^Imothur^IEnterococcus faecalis^I0.32290000^I0.021755985650701942^I3293.5000^I3309.7500^I4 $ asterix_potion^Imothur^IAcinetobacter असिनोक्टाबक्टोर^I0.28010000^I0.021539851624928375^I2869.5000^I2880.7500^I4 $

समस्या प्रजाति स्तंभ के साथ है। इसमें रिक्त स्थान हैं, और आर डिफ़ॉल्ट रूप से डिलीमीटर के रूप में दोनों स्थान और टैब का उपयोग कर रहा है। यदि आपके पास कोई सीईपी विकल्प नहीं दिया गया है तो आर के अनुसार हेडर की तुलना में आपके पास अतिरिक्त कॉलम है। यह समस्या की जड़ है।

संबंधित मुद्दे