2014-09-19 6 views
10

मेरे पास लगभग 2 मिलियन पंक्तियों वाला डेटासेट है, इसलिए पूरे डेटासेट को पढ़ने के बिना मैं डेटासेट का सबसेट पढ़ना चाहता हूं। मेरे डेटासेट में इसमें एक दिनांक कॉलम है, इसलिए मैं पूरे डेटासेट को पढ़ने के बिना दिनांक सीमा के बीच डेटासेट पढ़ना चाहता हूं क्योंकि यह समय लेने वाली और मेमोरी अपशिष्ट होगा। तो इसे पूरा करने के लिए कैसे कोई मुझे इस पर मार्गदर्शन कर सकता है? read.tableआर में बड़े डेटासेट का सबसेट कैसे पढ़ा जाए?

read.table("file.txt",skip= ,nrows=) 

में

+1

पैकेज डेटाटेबल से 'fread' के साथ संपूर्ण डेटासेट पढ़ें या पैकेज sqldf का उपयोग करें। यह भी देखें: http://stackoverflow.com/q/1727772/1412059 – Roland

उत्तर

7

उपयोग skip= पैरामीटर दोनों पंक्ति सूचक संख्या में skip= और nrows= ले तो बस उन्हें = के बाद जोड़ें।

nrows= परिभाषित करता है कि आप फ़ाइल आयात करते समय कितनी गहरी सीमा रखते हैं।

यदि आप पहले से ऐसा नहीं कर चुके हैं तो https://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html पढ़ने का सुझाव देते हैं।

इसके अलावा, कृपया मेरे सवालों में से एक देखें:

R - Reading lines from a .txt-file after a specific line

यह कुछ हद तक, एक ही विषय को छू लेती है।

अन्य संभव तरीके से उपयोग करने के लिए skip= में grep()

read.table(...,skip=grep("2005-12-31", readLines("File.txt")),nrows=365) 

क्या इस लाइन करता है जब तक यह लाइन grep() में दर्शाया पाता है और उस के बाद लाइनों पढ़ता है यह छोड़ देता है हो सकता है। nrow= पढ़ने के बाद 365 लाइनों को पढ़ने के बाद पढ़ना बंद कर देगा (इस तरह आपने एक वर्ष की तारीखें पढ़ी हैं, बशर्ते एक पंक्ति एक तारीख के बराबर हो)।

यह थोड़ा जटिल लगता है, लेकिन यह एकमात्र तरीका है जिसे मैं जानता हूं कि इसे कैसे हल किया जाए।

+0

लेकिन यह तिथियों के लिए कैसे काम कर सकता है? –

+0

अगर मुझे फ़ाइल में शुरुआती तारीख नहीं पता है तो मैं पंक्तियों की संख्या को छोड़ने के लिए कैसे गिन सकता हूं? –

+0

क्या आप थोड़ा निर्दिष्ट कर सकते हैं? आप किस प्रकार की फाइल पढ़ रहे हैं? उस तारीख के बारे में चुनाव मानदंड क्या है जहां पढ़ने शुरू होनी चाहिए? मेरा मतलब है, आपको कुछ विचार होना चाहिए कि आप किस तारीख को आयात करना चाहते हैं? या मुझसे यहां कुछ छूट रहा है। –

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