में read.csv() का उपयोग करके पिछली 100 पंक्तियों को आयात करने के लिए कैसे करें हाय मेरे पास एक बड़ी फ़ाइल है और मैं उस फ़ाइल से केवल अंतिम 100 पंक्तियां आयात करना चाहता हूं। हम read.csv() या किसी भी विकल्प का उपयोग करके ऐसा कैसे कर सकते हैं?आर
आर
उत्तर
पैकेज R.utils में काउंटरलाइन() नामक एक फ़ंक्शन है। आप कर सकता है:
l2keep <- 10
nL <- countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, skip=nL-l2keep)
यदि आप * निक्स सिस्टम पर हैं, तो आप पिछले 100 पंक्तियों को लेने के लिए tail -n 100
कमांड का उपयोग करने से बेहतर हैं। आर में लागू कुछ भी धीमा और संभावित रूप से धीमा होगा आपकी फाइल वास्तव में बड़ी है।
यदि आप विंडोज का उपयोग कर रहे हैं, तो आप this SO question पर एक नज़र डालना चाहेंगे।
या यह सच है। तो आप जो कह रहे हैं वह है कि पिछले 100 पंक्तियों को प्राप्त करने के लिए कुछ विंडोज़ फ़ंक्शन का उपयोग करके इसे एक फ़ाइल में रखा गया है और फिर आर में आयात किया गया है? –
बहुत ज्यादा। आप आर में 'तलाश()' और अन्य "फैंसी" चीजें कर सकते हैं लेकिन शुभकामनाएं जो कुछ तेज़ या सरल होती हैं। – ktdrv
आप और skip
read.csv
में तर्कों का उपयोग कर सकते हैं। जैसे यदि आप 10000 पंक्तियों के साथ एक फ़ाइल है और आप केवल पिछले 100 पंक्तियों आयात करना चाहते हैं तो आप इस कोशिश कर सकते:
read.csv("yourfile.csv",nrows=100,skip=9900)
लेकिन गति अगर यह होता है आप चाहते हैं, तो आप शायद द्वारा दिए गए समाधान के साथ बेहतर कर रहे हैं @ अन्नदा महतो और @ktdrv
उत्तर के लिए धन्यवाद। लेकिन समस्या यह है कि मेरा फ़ाइल आकार इतना बड़ा है कि मैं पंक्तियों की कुल संख्या निर्धारित करने में असमर्थ हूं। –
देना उचित छोड़ read.csv में पैरामीटर()
यह ओपी के प्रश्न का उत्तर नहीं देता है। वे * फाइल * * केवल अंतिम 100 पंक्तियों से पढ़ना चाहते हैं। आपका जवाब मानता है कि डेटा सेट पहले ही पढ़ा जा चुका है। –
त्वरित और गंदी तरह से है कि मेरे लिए काम करता - बड़ी फ़ाइलों को पढ़ने के लिए fread
का उपयोग select = 1
ताकि केवल सेट करते समय पहला कॉलम पढ़ा जाता है। फिर इच्छित पंक्तियों से डेटा पढ़ने के लिए फिर से fread
का उपयोग करें। Fread
read.csv
या अन्य समान रूपों से बहुत तेज़ है। fread
बनाम read.csv
पर: Reason behind speed of fread in data.table package in R
यदि आप गति के बारे में चिंतित हैं, तो "data.table" से 'fread' आज़माएं और फिर केवल अपनी इच्छित पंक्तियों को निकालें। इसी प्रकार, आप 'sqldf' का उपयोग कर सकते हैं। यदि आप यूनिक्स सिस्टम पर हैं, तो आपके पास 'पूंछ' कमांड तक पहुंच है जो उपयोगी हो सकती है। – A5C1D2H2I1M1N2O1R2T1
मुझे पता है कि हम ओएस विशिष्ट कमांड का उपयोग कर सकते हैं लेकिन मैं आर में अपने आसपास के काम की तलाश में हूं! –