2015-12-01 18 views
18

में वैश्विक वातावरण से ऑब्जेक्ट्स का उपयोग कैसे करें मैंने स्टैक ओवरफ़्लो पर समान प्रश्न देखा है लेकिन वास्तव में कोई निर्णायक उत्तर नहीं है, और निश्चित रूप से कोई जवाब नहीं है जो मेरे लिए काम करता है।Rstudio Markdown

मार्कडाउन (Rstudio) स्क्रिप्ट में वैश्विक आर पर्यावरण में स्थित वस्तुओं (रिग्रेशन फिट, डेटा फ्रेम, अन्य ऑब्जेक्ट्स) का उपयोग और उपयोग करने का सबसे आसान तरीका क्या है।

मुझे यह आश्चर्यजनक लगता है कि RStudio टीम की प्रवृत्ति को आरामदायक और प्रभावी बनाने के लिए इस के लिए कोई आसान समाधान नहीं है।

अग्रिम धन्यवाद।

+0

आप अपनी RMarkdown फ़ाइल को कैसे संसाधित कर रहे हैं? 'बुनाई एचटीएमएल' बटन दबाकर, या कहीं 'बुनाई' कमांड चलाकर? – arvi1000

+0

मैं "बुना हुआ HTML" दबाता हूं - क्या यह मुद्दा हो सकता है? –

+0

यूप। नीचे दिए गए उत्तर को देखें – arvi1000

उत्तर

21

बेहतर या बदतर के लिए, यह चूक जानबूझकर है। दस्तावेज़ के बाहर बनाए गए ऑब्जेक्ट्स पर निर्भर करते हुए आपके दस्तावेज़ को कम प्रतिलिपि बनाता है - यानी, यदि आपके दस्तावेज़ को वैश्विक वातावरण में डेटा की आवश्यकता है, तो आप दस्तावेज और डेटा फ़ाइलों को किसी को (या स्वयं को दो साल में) नहीं दे सकते हैं और उन्हें फिर से बनाने दें यह खुद

इस कारण से, और पृष्ठभूमि में प्रस्तुत करने के लिए, RStudio वास्तव में दस्तावेज़ प्रस्तुत करने के लिए एक अलग आर सत्र बनाता है। वह पृष्ठभूमि आर सत्र RStudio में देखे गए इंटरैक्टिव आर सत्र में किसी भी वातावरण को नहीं देख सकता है।

इस समस्या के आसपास सबसे अच्छा तरीका यह है कि आप अपने वैश्विक पर्यावरण की सामग्री बनाने के लिए इस्तेमाल किए गए कोड को ले जाएं और इसे अपने दस्तावेज़ में ले जाएं (यदि आप दस्तावेज़ में दिखाना नहीं चाहते हैं तो आप echo = FALSE का उपयोग कर सकते हैं) । यह आपके दस्तावेज़ को स्वयं निहित और पुनरुत्पादित करता है। बुनना एचटीएमएल बटन का उपयोग करने के बजाय

  1. , प्रकार rmarkdown::render("your_doc.Rmd") पर:

    आप ऐसा नहीं कर सकते हैं, तो वहां कुछ दृष्टिकोण आप सीधे वैश्विक वातावरण में डेटा का उपयोग करने के लिए उठा सकते हैं आर कंसोल। यह पृष्ठभूमि सत्र की बजाय मौजूदा सत्र में बुना होगा। वैकल्पिक रूप से:

  2. प्रतिपादन से पहले अपने डेटा को एक रैडटा फ़ाइल में सहेजें (आरफ़ंक्शन का उपयोग करें), और load इसे अपने दस्तावेज़ में सहेजें।

+0

कोई भी 'knitr :: knit ("your_doc.Rmd") का उपयोग कर सकता है।आर स्टूडियो "बुना एचटीएमएल" बटन किसी की वरीयता सेटिंग्स के आधार पर या तो रमार्कडाउन या बुनाई इंजन का उपयोग कर सकता है, और वे कुछ मामलों में थोड़ा अलग तरीके से व्यवहार कर सकते हैं – arvi1000

+0

लेकिन अगर मैं हर बार सभी कोड दोबारा नहीं लेना चाहता हूं तो मैं क्या करूँगा। "बुनी"? चूंकि मेरे डेटासेट बड़े हैं (कई मिलियन पंक्तियां,> 200 चर) तो कोड को पुन: जीवंत करने में वास्तव में समय लेने वाला होगा। कुछ हिस्सों को दोबारा शुरू करने के लिए मार्कडाउन स्किप कर सकते हैं? मुझे ऐसा तर्क नहीं मिला है, अर्थात्। –

+3

समस्या हल हो गई (cache.lazy = टी)। आप दोनों को शुक्रिया। –

1

मुझे एक ही समस्या है। कुछ सामान हर समय पुन: पेश करने में काफी समय लगता है।

मुझे लगता है कि एक और जवाब हो सकता है। क्या होगा यदि आप अपने पर्यावरण को save.image() फ़ंक्शन मानक .Rdata एक से अलग फ़ाइल में सहेजते हैं। फिर, इसे load() के साथ वापस लाएं।

सुनिश्चित करें कि आप एक ही डेटा का उपयोग कर रहे हो, md5sum()से उपकरण का उपयोग करें।

चीयर्स, कॉर्ड