2015-03-06 5 views
11

मुझे knitr के एक फ़ंक्शन में वास्तव में एक अच्छी चाल (link) मिली, जहां आप आउटपुट फ़ोल्डर में और एक अलग फ़ाइल नाम के तहत अपना आउटपुट HTML सहेज सकते हैं।रैंकडाउन आउटपुट फ़ाइल को निर्देशिका में निर्देशित करना

title: "analysis" 
author: "Me" 
date: "`r format(Sys.time(), '%d %B, %Y, %H:%M')`" 
knit: (function(inputFile, encoding) { 
     rmarkdown::render(inputFile, 
         encoding=encoding, 
         output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) }) 
output: 
    html_document: 
    number_sections: yes 
    toc: yes 

यह 'कभी कभी' बहुत अच्छी तरह से मेरी मैक पर काम करता है, लेकिन कभी कभी यह out_dir चर खोजने के लिए समस्या है ...

:

केवल एक चीज आप शीर्षक के सिर करने के लिए है निम्नलिखित है

मैं पहली बार पहला हिस्सा क्रियान्वित करने के बारे में सोचा है, तो चर सेट किया गया है ... लेकिन इस समस्या को ...

मैं भी पुन: प्रारंभ आर सत्र और इस मदद की नहीं किया हल नहीं किया।

अंतिम चरण आर बंद कर रहा था, कार्यक्षेत्र को सहेज रहा था और आर को फिर से खोलने और वर्कस्पेस लोड करने के बाद यह एक आकर्षण की तरह काम करता है।

मैं मूल पोस्ट है, जहां किसी को इस चाल की सिफारिश नहीं मिला ...

सटीक कार्यप्रवाह पुन: पेश करने

खुला नई परियोजना, नाम यह एक नए फ़ोल्डर में परीक्षण
ar markdown बनाने दस्तावेज़
परिवर्तन शीर्षक के:

--- 
title: "Untitled" 
author: "Me" 
date: "`r format(Sys.time(), '%d %B, %Y, %H:%M')`" 
knit: (function(inputFile, encoding) { 
     rmarkdown::render(inputFile, 
         encoding=encoding, 
         output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) }) 
output: 
    html_document: 
    number_sections: yes 
    toc: yes 
--- 

```{r write quant output files} 
out_dir <- 'test' 
if(!file.exists(out_dir)) { 
    dir.create(out_dir) 
} 
``` 

test.Rmd के रूप में दस्तावेज़ सहेजें
बुना हुआ बटन क्लिक करें (एचटीएमएल अब बटन के विकल्पों से हटा दिया गया है)
यह असफल हो जाएगा!

परियोजना बंद करें!
पर्यावरण बचाने के लिए क्लिक करें!

प्रोजेक्ट खोलें और बुनाई पर क्लिक करें!
सबकुछ काम करता है।

निष्पादित आर एम (सूची = ls()) सब कुछ बाद में फिर से काम करता है

+1

एक में है कि कोड चलाने की कल्पना स्वच्छ आर सत्र। आर कैसे जानता है कि 'out_dir' क्या है यदि आपने इसे परिभाषित नहीं किया है? जब यह वर्कस्पेस को पुनः लोड करने के बाद काम करता है, तो ऐसा इसलिए होता है क्योंकि 'out_dir' आपके पिछले आर सत्र से आगे की गई वस्तु है, जो कोड को काम करने की अनुमति देता है, भले ही इसे नहीं करना चाहिए। – Thomas

+0

आप सही हैं, लेकिन जब एचटीएमएल बनाया जाता है तो कमांड को rmakrdown प्रक्रिया के दौरान मूल्यांकन किया जाता है। मैं वैरिएबल out_dir को हाथ से भी सेट कर सकता हूं और अभी भी वही समस्या है और Rstudio शिकायत करता है कि out_dir मौजूद नहीं है ... यदि स्क्रिप्ट एक बार चलता है, तो मैं rm (list = ls()) निष्पादित भी कर सकता हूं और यह बाद में काम करता है अच्छा ... तो मुझे लगता है कि यह चर को सेट करने का सिर्फ एक मुद्दा नहीं है ... – drmariod

+0

कोई भी तरीका यह नहीं है कि यह कोड आपके द्वारा उस चर को निर्दिष्ट किए बिना काम कर सके। ऐसा लगता है कि आपके द्वारा अनुसरण किए जा रहे वर्कफ़्लो के पूर्ण विवरण के बिना काम करना क्यों मुश्किल है। – Thomas

उत्तर

9

आप समारोह आप knit दे रहे हैं रेंडर करने में out_dir चर को सेट कर सकें:

knit: (function(inputFile, encoding) { 
     out_dir <- 'test'; 
     rmarkdown::render(inputFile, 
         encoding=encoding, 
         output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) }) 
+0

का लिंक मिला मेरा मतलब है, मेरा पूरा फ़ंक्शन/रमार्कडाउन आर प्रोजेक्ट को फिर से खोलने के बाद ठीक काम कर रहा है .. यहां तक ​​कि अगर मैं पूरे पर्यावरण को हटा देता हूं जो पहले से सेट है ... तो मैं सोच रहा हूं, ऐसा क्यों होता है। या क्या कोई भी मेरे द्वारा पोस्ट किए गए परिदृश्य को पुन: उत्पन्न नहीं कर सकता है? मैंने इसे मैक और दो विंडोज कंप्यूटर पर आज़माया और यह उन सभी में पुन: उत्पन्न होता है और आर प्रोजेक्ट को फिर से खोलने के बाद काम करता है। – drmariod

+0

हां, मैं इसे अपने मशीन पर काम नहीं कर सकता अगर मैं 'out_dir' चर – NicE

+0

सेट नहीं करता हूं, तो मैं @NicE – Julian

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