2015-10-21 26 views
26

में लूप मैं इस तरह एक अनुसंधान markdown दस्तावेज़ है। कुछ इस तरह काल्पनिक रूप से:आर markdown

for i in length(somelist) { 
    output paste("The following graph shows a histogram of somelist[[" , i, "]]") 
    ```{r} 
    hist(somelist[[i]]) 
    ``` 

क्या यह भी संभव है?

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

+0

आप एक खंड के अंदर कई भूखंड उत्पन्न कर सकते हैं। क्या आप समझा सकते हैं कि आपके समाधान के लिए तर्क एक प्लॉट के अंदर एक लूप होने के विपरीत है जो एकाधिक भूखंड पैदा करता है? – akhmed

+1

मैं एक ही प्रश्न के लिए यहां आया था। मेरा तर्क RMarkdown रिपोर्ट के कई संस्करणों का उत्पादन करना है। रिपोर्ट मेरे छात्रों को दिए गए अभ्यास के लिए उत्तर होगी, लेकिन चूंकि प्रत्येक व्यक्ति अलग-अलग डेटा के साथ काम करता है, इसलिए मैं प्रत्येक छात्र के लिए रिपोर्ट को वैयक्तिकृत करना चाहता हूं। स्वीकार्य उत्तर उपयोगी हो सकता है, लेकिन वास्तव में लूप के अंदर मार्कडाउन होना बेहतर होगा, कैप्शन, फॉर्मूला, स्वरूपण आदि जैसे मार्कडाउन सुविधाओं का उपयोग करना। – Pere

उत्तर

26

क्या आप यही चाहते हैं?

--- 
title: "Untitled" 
author: "Author" 
output: html_document 
--- 


```{r, results='asis'} 
for (i in 1:2){ 
cat('\n') 
cat("#This is a heading for ", i, "\n") 
hist(cars[,i]) 
cat('\n') 
} 
``` 

यह उत्तर here से कम या ज्यादा चोरी हो गया था।

+0

यह दूसरे उत्तर से स्पष्ट नहीं था (कम से कम मेरे लिए) कि यह एक आर फाइल को पहली बार सिलाई बिना मार्कडाउन में किया जा सकता है। देखने के लिए बढ़िया है कि मैं अभी सिर्फ RMarkdown करने के लिए चिपक सकता है। –

+0

मेरे लिए, दोनों शीर्षलेख दोनों ग्राफ से पहले दिखाई देते हैं। – Nova

+0

मैं इस कोड को वर्तमान पैकेज संस्करण के साथ दोबारा शुरू करता हूं। मेरे लिए यह अभी भी काम करता है। क्या आपने नमूना कोड को किसी तरह से बदल दिया? – Alex

1

जैसा कि पहले से ही उल्लेख किया गया है, किसी भी लूप को कोड खंड में होना चाहिए। प्रत्येक के लिए शीर्षलेख के रूप में टेक्स्ट की एक पंक्ति जोड़ने के बजाय हिस्टोग्राम को शीर्षक देना आसान हो सकता है।

```{r} 
    for i in length(somelist) { 
     title <- paste("The following graph shows a histogram of somelist[[" , i, "]]") 
     hist(somelist[[i]], main=title) 
    } 
``` 

हालांकि, अगर आप एक से अधिक रिपोर्ट बनाने के लिए चाहते हैं तो this thread.

कौन सा भी this example.
के लिए एक लिंक ऐसा लगता है जब प्रस्तुत करना कॉल फोले के भीतर से बनाया गया है, पर्यावरण भी वेरिएबल नहीं है की जाँच आरएमडी फ़ाइल में पारित किया जा सकता है।

```{r} 
    hist(i) 
``` 

अस्वीकरण::

for i in length(somelist) { 
    rmarkdown::render('./hist_.Rmd', # file 2 
       output_file = paste("hist", i, ".html", sep=''), 
       output_dir = './outputs/') 
} 

और फिर अपने RMD हिस्सा दिखाई देगा: मैं इस परीक्षण नहीं किया

तो एक विकल्प के अपने अनुसंधान स्क्रिप्ट है हो सकता है।

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