का उपयोग कर बुनाई के साथ काम करना मेरे पास एक प्रोजेक्ट फ़ोल्डर है, जो मेरी कार्यशील निर्देशिका है। आइए इसे प्रोजेक्ट पर कॉल करें। प्रोजेक्ट फ़ोल्डर 4 उपनिर्देशिकाएं हैं: code
, data
, figures
, और documents
।उपनिर्देशिका
मैं code
उपनिर्देशिका में अपनी .Rmd
फ़ाइल डालना चाहता हूं। मैं आंकड़े figures
उपनिर्देशिका में जाना चाहता हूं। मैं .html
, .md
, और .docx
फ़ाइल (ओं) documents
उपनिर्देशिका में जाने के लिए चाहता हूं। मैं data
उपनिर्देशिका से अपने डेटा में पढ़ना चाहता हूं। क्या यह संगठनात्मक संरचना संभव है? मैं इसे काम करने के लिए प्रतीत नहीं कर सकता।
मैं इस निर्देशिका को project
पर सेट करने के लिए शुरू करता हूं क्योंकि मुझे लगता है कि knitr .Rmd
फ़ाइल के साथ फ़ोल्डर को देखता है और इसे निर्दिष्ट निर्देशिका के रूप में कार्यशील निर्देशिका के रूप में मानता है।
```{r setglobal, cache = FALSE, include = TRUE}
library(knitr)
opts_knit$set(root.dir = "..")
```
फिर मैं कार्यशील निर्देशिका से संबंधित आकृति पथ को सेट करने का प्रयास करता हूं।
```{r setchunk, cache=FALSE, include=TRUE}
opts_chunk$set(fig.path = "./figures/")
getwd()
```
कार्यशील निर्देशिका सही ढंग से project
के रूप में रिपोर्ट किया गया है। डेटा data
उपनिर्देशिका से सही ढंग से पढ़ा जाता है। सभी आउटपुट ठीक से प्रस्तुत किया जाता है और सभी कोड चलाता है।
```{r readdata}
crctx <- readRDS("./data/crctx.rds")
getwd()
*run lots of analyses here*
```
लेकिन आंकड़े project/figures
के बजाय project/code/figures
निर्देशिका में खत्म।
मैंने base.dir
सेटिंग करने का भी प्रयास किया है, लेकिन ऐसा कुछ भी नहीं दिख रहा है। मैंने पैरामीटर
base.dir = "./figures"
opts_knit$set
सूची में जोड़ा गया। मैंने पूरे पथ को कड़ी-कोडिंग करने की भी कोशिश की। लेकिन ऐसा कुछ भी बदलने में सक्षम नहीं लगता है।
मैं आर 3.10 और आर स्टूडियो 0.98.9 53 का उपयोग कर रहा हूं। यह मैक 0 एसएक्स 10.9.4 है।
क्या मुझे कुछ याद आ रही है? और आउटपुट फ़ाइलों को अपनी निर्देशिका में रखने का कोई तरीका है?
कारण यह महत्वपूर्ण है कि मैं चाहता हूं कि हमारी कंपनी सभी एक ही निर्देशिका संरचना का उपयोग करे, और इससे हमें हमारी परियोजनाओं को बेहतर तरीके से व्यवस्थित करने की अनुमति मिल जाएगी।
किसी भी मदद के लिए अग्रिम धन्यवाद।
अद्यतन:
मुझे लगता है कि opts_chunk$set(fig.path = "./figures/")
सही नहीं है। मैंने माना कि opts_knit$set(root.dir = normalizePath("../"))
का उपयोग कर प्रोजेक्ट फ़ोल्डर में मूल निर्देशिका को सेट करने से knitr में वैश्विक परिवर्तन होगा, क्योंकि ऐसा ही करना है। और यह डेटा उपनिर्देशिका के लिए काम करता है, जिसे अब "./data"
के साथ एक्सेस किया जा सकता है जो कोड को चलाने की अनुमति देता है। हालांकि, वैश्विक सेटिंग आकृति आउटपुट पर लागू नहीं होती है। इसलिए, सही विनिर्देश opts_chunk$set(fig.path = "../figures/")
है - ./
के बजाय ../
का उपयोग करना। मुझे लगता है कि रिची कपास ने इसे ठीक किया, और मैंने इसे थोड़ी देर के लिए नहीं देखा।
मैंने project/documents
से project/code/figure
पर एक प्रतीकात्मक लिंक बनाने के लिए ओएसएक्स में टर्मिनल का भी उपयोग किया जो डिफ़ॉल्ट रूप से knitr द्वारा बनाई गई है। इसके साथ, knitr सही उप-उपनिर्देशिका को देखता है, लेकिन सब कुछ projects/documents
में समाप्त होता है। यह वास्तव में अच्छी तरह से काम किया। मैं फ़ाइल.symlink का उपयोग कर प्रतीकात्मक लिंक ठीक से नहीं बना सकता। लेकिन यह टर्मिनल में ठीक काम करता है। जाओ पता लगाओ।
अपडेट 2:
मैं के रूप में अच्छी तरह से काम करने के लिए उत्पादन फ़ाइलों मिला है। आपको सीधे बुनाई कमांड का उपयोग करना होगा। पाठ नीचे है।
Knitr कोड उत्पादन/रिपोर्ट में कोड/विश्लेषण और उत्पादन में .Rmd के साथ एक markdown दस्तावेज़ बुनी रहे हैं: knit("./code/knitr_file.Rmd", "./documents/knitr_output.md”)
Pandoc कोड .docx को .md फ़ाइल को रूपांतरित करने - को उसी फ़ोल्डर का उपयोग करता है। एमडी (knitr दस्तावेज़ से) pandoc("./documents/knitr_output.md", format = "docx”)
उत्पादन शैलियों फाइल
pandoc('knitr_output.md', format='html') # HTML pandoc('knitr_output.md', format='latex') # LaTeX/PDF pandoc('knitr_output.md', format='docx') # MS Word pandoc('knitr_output.md', format='odt') # OpenDocument
(अगर [ 'normalizePath'] http://stackoverflow.com/questions/19882198/trouble-finding-file-source-in-rmd-chunk-when-knitting-rmd-from-master- देखें आर-फाइल) आपके लिए काम करता है। –
मैंने वाक्यविन्यास को देखा, और मुझे पता नहीं लगा कि क्या करना था। लेकिन मैं एक और नजर डाल सकता हूँ। –