2012-06-22 12 views
21

मुझे आश्चर्य है कि क्या मैं अपने मौजूदा वर्कस्पेस से उत्पन्न वस्तुओं के साथ फ्लाई पर एक रिपोर्ट बनाने के लिए knitr मार्कडाउन का उपयोग कर सकता हूं। पुनरुत्पादन यहां मुद्दा नहीं है। मैंने यह बहुत अच्छा thread here भी पढ़ा।क्या RStudio का उपयोग कर सीधे आपके कार्यक्षेत्र से बाहर knitr मार्कडाउन का कोई तरीका है?

लेकिन फिर भी मुझे एक त्रुटि संदेश शिकायत है कि विशेष वस्तु नहीं मिल सका।

1) मान लीजिए कि मैं एक नया मार्कडाउन दस्तावेज़ खोलता हूं और इसे सहेजता हूं।

2) एक कार्य लिखें जो मेरे कार्यक्षेत्र में कुछ lm ऑब्जेक्ट को संदर्भित करता है। कॉल summary(mylmobject)

3) इसे बुनाई करें।

दुर्भाग्य से रिपोर्ट जेनरेट की गई है लेकिन रिग्रेशन आउटपुट नहीं दिखाया जा सकता है क्योंकि ऑब्जेक्ट नहीं मिला। नोट, यह सामान्य रूप से काम करता है अगर मैं ऑब्जेक्ट को Rdata पर सहेजता हूं और फिर इसे सीधे मार्कडाउन फ़ाइल से लोड करता हूं।

क्या वर्तमान वर्कस्पेस में आर मार्कडाउन में ऑब्जेक्ट्स का उपयोग करने का कोई तरीका है? अभी भी काम करते समय गैर आर लोगों को कुछ आउटपुट दिखाने के लिए वास्तव में अच्छा होगा।

उत्तर

25

RStudio अपने आर Markdown फ़ाइल knit() करने के लिए एक नई आर सत्र खुल जाता है, तो अपने वर्तमान कार्य करने के स्थान में वस्तुओं है कि सत्र (वे दो अलग-अलग सत्रों कर रहे हैं) के लिए उपलब्ध नहीं होगा। दो समाधान:

  1. फ़ाइल RStudio करने के लिए एक feature request, उन्हें पूछ वर्तमान आर सत्र में बुनाई का समर्थन करने के बजाय जबरन एक नया सत्र प्रारंभ होने पर;
  2. खुद के द्वारा मैन्युअल रूप से बुनी: library(knitr); knit('your_file.Rmd') (या knit2html() यदि आप एक कदम, या rmarkdown::render() में HTML आउटपुट चाहते हैं, तो आप R Markdown v2 उपयोग कर रहे हैं)
+5

मुझे लगता है कि विकल्प 1 पुनरुत्पादित अनुसंधान के प्रतिमान के प्रति काउंटर है। –

+2

@ ब्रैंडनबर्टेलसन आप सही हैं, और यही कारण है कि RStudio हर बार एक नया आर सत्र खोलता है; तुलनात्मक रूप से, Emacs/ESS वर्तमान आर सत्र में स्वीवे/knitr कॉल करता है। मौजूदा आर सत्र का उपयोग करने के फायदे हैं, हालांकि: 1. तेज हो सकता है; 2. कोड को डीबग करने में हमारी सहायता करता है (उदाहरण के लिए स्रोत दस्तावेज़ से उत्पन्न वस्तुओं की जांच करें) –

+0

यह जानने के लिए उत्सुक है कि 2012 में पोस्ट किए जाने के बाद से रुस्तुडियो या नाइट्र में कोई बदलाव आया है या नहीं? –

22

का उपयोग कर अपने अन्य सत्र से आप डेटा को बचाने के लिए आसान हो सकता है:

save.image("C:/Users/Desktop/example_candelete.RData") 

और फिर अपने एमडी फाइल में इसे लोड:

load("C:/Users/Desktop/example_candelete.RData") 
+0

असल में मैं यही करता हूं। –

+2

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

+0

आप save.image() के बजाय save (mylmobject) का उपयोग करके सहेजने के लिए चुन सकते हैं –

0

Markdownreports package फ्लाई पर एक मार्कडाउन दस्तावेज़ को पार्स करने के लिए बिल्कुल डिज़ाइन किया गया है।

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