2011-07-06 10 views
13

मैं डेटा फ्रेम के रूप में आर में कॉलम उन्मुख सीएसवी फ़ाइल को पढ़ने की कोशिश कर रहा हूं।read.csv row.names

फ़ाइल की पहली पंक्ति तो की तरह है:

sDATE, sTIME,iGPS_ALT, ...

और उसके बाद प्रत्येक अतिरिक्त लाइन माप है:

4/10/2011,2:15,78, ...

जब मैं आर में यह पढ़ने की कोशिश,

d = read.csv('filename')

के माध्यम से

मुझे एक डुप्लिकेट पंक्ति.नाम त्रुटि मिलती है क्योंकि आर सोचता है कि डेटा का पहला स्तंभ पंक्ति नाम है, और चूंकि सभी माप उसी दिन लिया गया था, पहले कॉलम में मान नहीं बदलते हैं।

अगर मैं read.csv कॉल में row.names = NULL में डाल, मैं एक बाहरी स्तंभ d$row.names जो sDATE स्तंभ से मेल खाती है मिलता है, और सब कुछ "स्थानांतरित" है एक स्तंभ नीचे है, तो d$sDATE उस में 2:15, नहीं 4/10/2011 रूप में की जरूरत के लिए होगा।

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

+0

'row.names = 1: n' को सेट करने के बारे में क्या, जहां फ़ाइल में पंक्तियों की संख्या' n' है। – nullglob

+0

में पढ़ने में त्रुटि 'read.table में त्रुटि (फ़ाइल = फ़ाइल, हेडर = हेडर, sep = sep, quote = quote, अमान्य' row.names 'विनिर्देश' – nimish

+2

सीएसवी की पहली कुछ पंक्तियां (और कॉलम) पेस्ट करें फ़ाइल, कृपया –

उत्तर

29

read.csv केवल मानता है कि अन्य पंक्तियों की तुलना में शीर्षलेख में कम मूल्य होने पर कोई पंक्ति नाम हैं। तो किसी भी तरह आप या तो कॉलम नाम खो रहे हैं या एक अतिरिक्त कॉलम है जिसे आप नहीं चाहते हैं।

4

आपके पास शायद एक अतिरिक्त कॉलम है।
लेकिन यह शायद आपकी मूल स्प्रेडशीट में आपके डेटा के दाईं ओर एक भटक स्वरूपित सेल (या कोशिकाओं का स्तंभ) से उत्पन्न होता है जो वास्तव में खाली है।
यहां कुंजी है: एक्सेल आपकी शीट में स्वरूपित किसी रिक्त कक्ष के लिए सीएसवी फ़ाइल में खाली फ़ील्ड को सहेज लेगा। यही कारण है कि आपको शायद यह समस्या क्यों है: क्योंकि जब आप Excel के साथ CSV फ़ाइल खोलते हैं और इसे फिर से सहेजते हैं तो R के साथ समस्या दूर हो जाती है।
क्या हो रहा है: जब आप एक CSV फ़ाइल को एक्सेल में वापस खींचते हैं, तो यह बाद में खाली डेटा को आपके डेटा के दाएं या नीचे से अनदेखा कर देगा (क्योंकि CSV फ़ाइलों में कोई स्वरूपण नहीं है)।

निष्कर्ष: सांख्यिकीय पैकेजों के साथ उपयोग के लिए सीएसवी फाइलों के रूप में स्वरूपित स्प्रेडशीट को सावधान रहें। Stray स्वरूपण का मतलब सीएसवी में भटक गए फ़ील्ड है।

0

हेडर लाइन के बाद लाइनों के अंत में एक संभावित कारण अतिरिक्त कॉमा हो सकता है। एक्सेल चुपचाप उन्हें अनदेखा करता है और सहेजते समय हटा देता है।

के लिए मुझे

0

मैं एक ही मुद्दे का सामना करना पड़ा कम से कम यह मामला था। यह

tempdata <- read.csv("C:\\File.csv",header=TRUE) 

नीचे पहले कॉलम जो तारीख स्तंभ ठीक से संरेखित हो गया था की तरह header=TRUE जोड़कर संकल्प लिया गया।

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