आर

2010-11-01 11 views
20

में बार-बार पंक्ति नामों के साथ एक सीएसवी फ़ाइल पढ़ने के लिए मैं बार-बार पंक्ति नामों के साथ एक सीएसवी फ़ाइल पढ़ने की कोशिश कर रहा हूं लेकिन नहीं कर सका। मैं त्रुटि संदेश आ रहा है Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed.आर

कोड मैं का उपयोग कर रहा है:

S1N657 <- read.csv("S1N657.csv",header=T,fill=T,col.names=c("dam","anim","temp")) 

अपने डेटा का एक उदाहरण नीचे दी गई है:

did <- c("1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657") 
aid <- c(101,102,103,104,105,106,107,108,109,110) 
temp <- c(36,38,37,39,35,37,36,34,39,38) 

data <- cbind(did,aid,temp) 

किसी भी मदद की सराहना की जाएगी।

उत्तर

22

समारोह, डुप्लिकेट पंक्ति नाम देख रही है ताकि आप उस के साथ सौदा करने की जरूरत है। शायद सबसे आसान तरीका row.names = NULL है, जो पंक्ति संख्या को मजबूर करेगा - दूसरे शब्दों में, यह आपके पहले कॉलम को पहले आयाम के रूप में मानता है और पंक्ति संख्या के रूप में नहीं, और इसलिए पंक्ति संख्या जोड़ता है (लगातार "1" के साथ शुरू पूर्णांकों।

read.csv("S1N657.csv", header=T,fill=T, col.names=c("dam","anim","temp"), row.names=NULL) 
+0

सही है कि डॉग! मैं देखता हूं कि उसने मेरे पहले कॉलम (बांध आईडी) को पहले आयाम के रूप में माना है जैसा आपने कहा था। मैंने [, -1] बिट को बाहर रखा और फिर जोड़े गए अतिरिक्त की देखभाल करने के लिए मेरे कॉलम का नाम बदलें। आपका बहुत बहुत धन्यवाद! – baz

+2

@Bazon, आपके शीर्षलेख के पहले कॉलम का नाम नहीं है। यदि आप इसे एक नाम देते हैं, तो समस्या स्वचालित रूप से हल हो जाती है। read.csv ("S1N657.csv", हैडर = टी, भरने = टी, col.names = c ("बांध: – VitoshKa

+0

हाय डौग, नहीं वहाँ से पहले row.names = शून्य एक अल्पविराम ताकि स्क्रिप्ट होगा होना चाहिए "," एनिम "," अस्थायी "), row.names = NULL – baz

3

इस प्रयास करें:

S1N657 <- read.csv("S1N657.csv",header=T,fill=T,col.names=c("dam","anim","temp"), 
      row.names = NULL)[,-1] 
+1

हाय kohske, कि काम किया। क्या आप उस कोड के अंतिम भाग को समझा सकते हैं: [, -1] कृपया? आपका बहुत बहुत धन्यवाद! – baz

+0

हाय kohske, स्क्रिप्ट चलाने की बात है, मैं पता चला कि [, -1] स्क्रिप्ट का हिस्सा पंक्ति नाम हटा दिया या मेरे बांध आईडी (किया)। – baz

+0

हाँ आप सही हैं। यदि आपको पहले कॉलम (शायद प्रत्येक पंक्ति के डुप्लिकेट नाम) की आवश्यकता है, तो ऊपर दिए गए कोड से [, -1] हटा दें। – kohske

2

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

मैं चाहता था कि पंक्तियां हों संख्याबद्ध, लेकिन इसके बजाय यह पंक्ति की नाम के रूप में मेरी पहली पंक्ति को देख रहा था। दस्तावेज़ों से (मुझ द्वारा जोर दिया गया):

पंक्ति नाम पंक्ति का एक वेक्टर नाम। यह वास्तविक पंक्ति नाम देने वाला एक वेक्टर हो सकता है, या तालिका का स्तंभ देकर एक एकल संख्या जिसमें पंक्ति नाम, या पंक्ति स्ट्रिंग वाले तालिका कॉलम का नाम देकर वर्ण स्ट्रिंग शामिल हो।

यदि कोई शीर्षलेख है और पहली पंक्ति में कॉलम की संख्या की तुलना में एक कम फ़ील्ड है, इनपुट में पहला कॉलम पंक्ति नामों के लिए उपयोग किया जाता है। अन्यथा यदि पंक्ति। नाम गुम हैं, पंक्तियों की संख्या गिना जाता है।

पंक्ति.नाम = NULL पंक्ति संख्या संख्या का उपयोग करना। गुम या नल पंक्ति.नाम पंक्ति नाम उत्पन्न करते हैं जिन्हें 'स्वचालित' माना जाता है (और .matrix द्वारा संरक्षित नहीं)।

शीर्षलेख पंक्ति में एक अतिरिक्त टैब वर्ण जोड़कर हेडर पंक्ति में डेटा पंक्तियों के समान स्तंभों की संख्या होती है, इस प्रकार समस्या को हल किया जाता है।

0

अपनी csv फ़ाइल भाँप रहे एक xlsx.Add से पहली पंक्ति के अंत करने के लिए अल्पविराम परिवर्तित, अंतिम पंक्ति को हटा दें,

+1

आपका उत्तर उस प्रश्न का समाधान नहीं करता है जो पूछा गया था और यह कम गुणवत्ता है। कृपया थोड़ा और अधिक – avalancha

+0

विस्तृत करने पर विचार करें ... वास्तव में उपयोगी है के रूप में ट्रैविस Heeter से ऊपर बताया गया है, इस स्तंभ शीर्ष लेख में लापता की वजह से हो सकता है। अगर ऐसी बात है, को हल करने के लिए एक रास्ता, एक पाठ संपादक में फ़ाइल खोलने के अंत में एक अल्पविराम जोड़ने है पहली पंक्ति और इसे बचाओ। इसे बाद में मिलना चाहिए। –

0

किया संक्षेप में, अपने स्तंभ नाम जाँच था। यदि आपकी पहली पंक्ति कॉलम के नाम हैं, तो आप एक या अधिक नाम गायब हो सकते हैं।

उदाहरण:

"a","b","c" 
a,b,c,d 
a,b,c,d 

उदाहरण के ऊपर एक row.name त्रुटि क्योंकि प्रत्येक पंक्ति 4 मान होते हैं, लेकिन केवल 3 कॉलम नाम हैं कारण होगा।

यह जब मैं एक ऑनलाइन संसाधनों से एक csv निर्माण कर रहा था मुझे क्या हुआ।