उम्मीद किसी की मदद कर सकते हैं मुझे समझने क्यों गुमराह \ N पात्रों तार का एक वेक्टर है कि मैं आरसी() के लिए क्यों और कहाँ n न्यूलाइन वर्ण पेश किए जा रहे हैं?
में बना रहा हूं आयात और निश्चित चौड़ाई प्रारूप में है कि एक बहुत व्यापक डेटा फ़ाइल को साफ करने की कोशिश कर रहा में दिख रहे हैं (http://www.state.nj.us/education/schools/achievement/2012/njask6/, 'डेटा चलाने के लिए टेक्स्ट फ़ाइल')। Read.fwf और this उत्कृष्ट SO प्रश्न का उपयोग करने के बाद स्तंभों के नाम देने के लिए UCLA tutorial का पालन करें।
क्योंकि फ़ाइल वास्तव में चौड़ी है, कॉलम हेडर लंबे हैं - सभी एक साथ, केवल 2 9 800 वर्णों के नीचे। मैं उन्हें तार का एक सरल वेक्टर के रूप में में गुजर रही है:
column_names <- c(...)
मैं तुम्हें बदसूरत डंप यहाँ छोड़ देंगे, लेकिन मैं pastebin पर पूरी बात गिरा दिया।
विश्लेषण के लिए कुछ चरों को साफ और परिवर्तित कर रहा था जब मैंने देखा कि मेरे कुछ सबसेट 0 पंक्तियों को वापस कर रहे थे। इसके बारे में परेशान होने के बाद (क्या मैंने कुछ गलत लिखा?) यह महसूस किया कि किसी भी तरह से मेरे कॉलम हेडर में '\ n' न्यूलाइन वर्णों का एक गुच्छा पेश किया गया था।
तो COLUMN_NAMES वेक्टर मेरे द्वारा बनाए गए कि
for (i in 1:length(column_names)) {
print(column_names[i])
}
मैं 81 वीं लाइन के बीच में पहले न्यू लाइन चरित्र को देखने से अधिक मैं पाश -
विशेष \ nEDUCATION विज्ञान संख्या नामांकित विज्ञान
एवेन्यू जिन्हें मैंने हल करने का प्रयास किया:
1) क्या यह मेरे पर्यावरण के बारे में कुछ है? मैं आर में नियमित स्क्रिप्ट संपादक का उपयोग कर रहा हूं, और मेरी लाइन रैप करें - लेकिन मेरी स्क्रीन पर ब्रेक \ n अक्षरों के प्लेसमेंट से मेल नहीं खाते हैं, जो मुझे बताता है कि यह आर स्क्रिप्ट संपादक नहीं है।
2) क्या कोई GUI सेटिंग है? कुछ searching किया था, लेकिन कुछ भी नहीं मिला।
3) क्या कोई पैटर्न है? ऐसा लगता है कि प्रत्येक 4000 वर्णों के बारे में न्यूलाइन वर्ण डाले गए हैं। आर/एस प्राइमेटिव्स पर कुछ पढ़ने के लिए यह पता लगाने की कोशिश की गई कि क्या इसका मूल आर डेटा संरचनाओं के साथ कुछ करना है, लेकिन मेरे सिर पर बहुत जल्दी था।
मैंने लंबी स्ट्रिंग को shorter chunks में तोड़ने की कोशिश की, और उसके बाद बाद में उन्हें संयोजित किया, और यह समस्या को हल करने लग रहा था।
column_names.1 <- c(...)
column_names.2 <- c(...)
column_names_combined <- c(column_names.1, column_names.2)
इसलिए मेरे पास तत्काल कार्यवाही है, लेकिन यह जानना अच्छा लगेगा कि वास्तव में यहां क्या चल रहा है।
posts में से कुछ है कि चरित्र वैक्टर के साथ समस्याओं से कोई लेना देना था सुझाव दिया है कि मैं स्मृति प्रोफ़ाइल चलाएँ:
memory.profile()
NULL symbol pairlist closure environment promise
1 9572 220717 4734 1379 5764
language special builtin char logical integer
63932 165 1550 18935 10302 30428
double complex character ... any list
2039 1 60058 0 0 20059
expression bytecode externalptr weakref raw S4
1 16553 725 150 151 1162
मैं आर 2.15.1 (64-बिट) आर चल रहा हूँ विंडोज 7 पर (उद्यम , एसपी 1, 8 गीगा रैम)। धन्यवाद!
पेस्टबिन में कोड को आप कैसे निष्पादित कर रहे हैं? क्या आप इसे कॉपी और पेस्ट कर रहे हैं? या इसे एक फाइल से सोर्सिंग? या किसी अन्य तरीके से? – hadley
नई स्क्रिप्ट और फिर प्रतिलिपि बनाना और पेस्ट करना, हाँ। एक फ़ाइल से सोर्सिंग नहीं। – Andrew
यह एक कॉपी और पेस्ट बग है (मुझे लगता है) आर (या शायद आर क्लाइंट जिसका आप उपयोग कर रहे हैं) - बस इसके बजाय फ़ाइल से स्रोत करें। – hadley