में मौजूदा डेटाफ्रेम (आरडीएस) में नया डेटा संलग्न करें मेरे पास एक प्रतिलिपि है जो एक फ्लैट फ़ाइल के रूप में डेटा की निरंतर स्ट्रीम में पढ़ रही है। एक और स्क्रिप्ट इस फ्लैट फ़ाइल को उठाती है, कुछ पार्सिंग और प्रसंस्करण करता है, फिर परिणाम को डेटा के रूप में सहेजता है। आरडीएस प्रारूप में डेटा। यह तब सोता है, और प्रक्रिया को दोहराता है।आर
saveRDS(tmp.df, file="H:/Documents/tweet.df.rds") #saving the data.frame
दूसरी ... वें यात्रा पर, मैं कोड केवल की प्रक्रिया नई लाइनों पिछले यात्रा के बाद से फ्लैट फ़ाइल को जोड़ा गया है। हालांकि, स्थायी डेटा फ्रेम में डेल्टा लाइनों को जोड़ने के लिए, मुझे इसे मूल रूप से ओवरराइट करने, इसे जोड़ने, जोड़ने और फिर इसे वापस सहेजना होगा।
df2 <- readRDS("H:/Documents/tweet.df.rds") #read in permanent
tmp.df2 <- rbind(df2, tmp.df) #append new to existing
saveRDS(tmp.df2, file="H:/Documents/tweet.df.rds") #save it
rm(df2) #housecleaning
rm(tmp.df2) #housecleaning
यह दृष्टिकोण जोखिम भरा है, क्योंकि जब भी आरडीएस पढ़ने/लिखने के लिए खुला है, उस फ़ाइल को छूने के लिए इच्छुक किसी अन्य प्रक्रिया इंतजार करना पड़ता है। चूंकि आधार फ़ाइल बड़ी हो जाती है, जोखिम बढ़ता है।
क्या appendRDS
(मुझे सचमुच पता नहीं है) की तरह कुछ है जो मैं चाहता हूं कि प्राप्त कर सकूं- एक डेटा फ्रेम को पुन: अद्यतन करना- फ़ाइल में सहेजा गया- जो पूर्ण प्रतिस्थापन के बजाय संलग्न करने का उपयोग करता है?
अच्छा, मुझे लगता है कि आप पहली जगह में एक बुरी चीज कर रहे हैं। आप अपने पिछले डेटा को ओवरराइट कर रहे हैं, इस प्रकार प्रभावी रूप से पिछले संस्करणों को हटा रहे हैं। उस ने कहा, क्यों नहीं 'टेक्स्ट लिखने योग्य' के साथ टेक्स्ट फॉर्म (सीएसवी, उदा।) में अपना डेटा बचाएं, जो मौजूदा दस्तावेजों में शामिल होने की अनुमति देता है? –
मैं वास्तव में पिछले डेटा को पिछले डेटा की एक प्रति के साथ नवीनतम रिकॉर्ड में rbind'd के साथ ओवरराइट कर रहा हूं। उम्मीद है कि शो का मेरा दूसरा ब्लॉक जो पुराने में पढ़ता है, नया जोड़ता है, पुराने + नए के साथ पुराने को ओवरराइट करता है। अब मैं write.table append विकल्प देखता हूं। मैं एक गैर देशी प्रारूप से दूर रहा था क्योंकि मुझे लगा कि यह प्रसंस्करण ओवरहेड में वृद्धि करेगा। लेकिन बेहतर स्थिरता के लिए उस चरण में थोड़ा अक्षमता से व्यापार करने के साथ मैं ठीक हो सकता हूं। –
मुझे आश्चर्य है कि कुछ जादू के साथ? Serialize एक संलग्न समारोह बनाने के लिए इस्तेमाल किया जा सकता है। –