आर

2013-08-30 4 views
9

में read.csv() का उपयोग करके पिछली 100 पंक्तियों को आयात करने के लिए कैसे करें हाय मेरे पास एक बड़ी फ़ाइल है और मैं उस फ़ाइल से केवल अंतिम 100 पंक्तियां आयात करना चाहता हूं। हम read.csv() या किसी भी विकल्प का उपयोग करके ऐसा कैसे कर सकते हैं?आर

+0

यदि आप गति के बारे में चिंतित हैं, तो "data.table" से 'fread' आज़माएं और फिर केवल अपनी इच्छित पंक्तियों को निकालें। इसी प्रकार, आप 'sqldf' का उपयोग कर सकते हैं। यदि आप यूनिक्स सिस्टम पर हैं, तो आपके पास 'पूंछ' कमांड तक पहुंच है जो उपयोगी हो सकती है। – A5C1D2H2I1M1N2O1R2T1

+1

मुझे पता है कि हम ओएस विशिष्ट कमांड का उपयोग कर सकते हैं लेकिन मैं आर में अपने आसपास के काम की तलाश में हूं! –

उत्तर

21

पैकेज R.utils में काउंटरलाइन() नामक एक फ़ंक्शन है। आप कर सकता है:

l2keep <- 10 
nL <- countLines("your.csv") 
df <- read.csv("your.csv", header=FALSE, skip=nL-l2keep) 
3

यदि आप * निक्स सिस्टम पर हैं, तो आप पिछले 100 पंक्तियों को लेने के लिए tail -n 100 कमांड का उपयोग करने से बेहतर हैं। आर में लागू कुछ भी धीमा और संभावित रूप से धीमा होगा आपकी फाइल वास्तव में बड़ी है।

यदि आप विंडोज का उपयोग कर रहे हैं, तो आप this SO question पर एक नज़र डालना चाहेंगे।

+0

या यह सच है। तो आप जो कह रहे हैं वह है कि पिछले 100 पंक्तियों को प्राप्त करने के लिए कुछ विंडोज़ फ़ंक्शन का उपयोग करके इसे एक फ़ाइल में रखा गया है और फिर आर में आयात किया गया है? –

+0

बहुत ज्यादा। आप आर में 'तलाश()' और अन्य "फैंसी" चीजें कर सकते हैं लेकिन शुभकामनाएं जो कुछ तेज़ या सरल होती हैं। – ktdrv

1

आप और skipread.csv में तर्कों का उपयोग कर सकते हैं। जैसे यदि आप 10000 पंक्तियों के साथ एक फ़ाइल है और आप केवल पिछले 100 पंक्तियों आयात करना चाहते हैं तो आप इस कोशिश कर सकते:

read.csv("yourfile.csv",nrows=100,skip=9900) 

लेकिन गति अगर यह होता है आप चाहते हैं, तो आप शायद द्वारा दिए गए समाधान के साथ बेहतर कर रहे हैं @ अन्नदा महतो और @ktdrv

+0

उत्तर के लिए धन्यवाद। लेकिन समस्या यह है कि मेरा फ़ाइल आकार इतना बड़ा है कि मैं पंक्तियों की कुल संख्या निर्धारित करने में असमर्थ हूं। –

-2

देना उचित छोड़ read.csv में पैरामीटर()

+1

यह ओपी के प्रश्न का उत्तर नहीं देता है। वे * फाइल * * केवल अंतिम 100 पंक्तियों से पढ़ना चाहते हैं। आपका जवाब मानता है कि डेटा सेट पहले ही पढ़ा जा चुका है। –

0

त्वरित और गंदी तरह से है कि मेरे लिए काम करता - बड़ी फ़ाइलों को पढ़ने के लिए fread का उपयोग select = 1 ताकि केवल सेट करते समय पहला कॉलम पढ़ा जाता है। फिर इच्छित पंक्तियों से डेटा पढ़ने के लिए फिर से fread का उपयोग करें। Freadread.csv या अन्य समान रूपों से बहुत तेज़ है। fread बनाम read.csv पर: Reason behind speed of fread in data.table package in R