2013-08-29 11 views
6

जब मैं knitr का उपयोग निम्न कोड के बाहर एक HTML दस्तावेज़ का निर्माण करने की:कोड के साथ हिस्सा उत्पादन interleaving से knitr/Rmarkdown रोकने

Chunk Output 
======================================================== 

Outside a chunk. 

```{r chunk1, results='asis'} 

cat('Inside a chunk\n\n') 

for (i in 1:3) { 
    cat('* Inside loop #', i, '\n') 
} 

cat('Outside a loop, but still inside the first chunk') 
``` 

Between chunks. 

```{r chunk2, results='asis'} 

cat('Inside second chunk') 

``` 

I get output जहां chunk1 में कोड cat बयान के उत्पादन के साथ interleaved है । दिलचस्प बात यह है कि for लूप के भीतर आउटपुट एक ब्लॉक के रूप में आउटपुट है।

मैं chunk1 से, पहले प्रकट करने के लिए उत्पादन के सभी के द्वारा पीछा किया chunk1 से कोड के सभी पसंद करेंगे। क्या रैंकडाउन/बुनाई से पूछने का कोई तरीका है कि यह वर्तमान में क्या कर रहा है?

+0

काफी हो रही है नहीं कि आप क्या चाहते लिख सकते हैं, लेकिन आप 2 कोड हिस्सा है कि समान हैं बना सकता है, एक पर आप 'eval = FALSE' और दूसरा जहां' गूंज = FALSE'। –

+0

मैं ऐसा कर सकता था। या मैं 'x (1 में x)' में भाग की सामग्री को लपेट सकता हूं, जो आउटपुट को इंटरलेव करने से रोकता है (मेरे डॉक्टर में अनावश्यक कोड की कीमत पर)। लेकिन मैं इसे सही तरीके से करने का विकल्प चुनना पसंद करूंगा। किसी को पता है कि यह संभव है? – Harlan

+1

@ हार्लान मुझे नहीं लगता कि यह आसान है क्योंकि इन ब्लॉकों को इन ब्लॉकों को संसाधित करता है। एक न्यूनतम हैक ब्लॉक को {{} ' – hadley

उत्तर

8

यहाँ समाधान मैं

Chunk Output 
======================================================== 

Outside a chunk. 

```{r chunk1, results='hide'} 

cat('Inside a chunk\n\n') 

for (i in 1:3) { 
    cat('* Inside loop #', i, '\n') 
} 

cat('Outside a loop, but still inside the first chunk') 
``` 

```{r ref.label = 'chunk1', results = 'asis', echo = F} 

``` 

प्रस्तावित knitr के नवीनतम संस्करण में है, @yihui एक नया हिस्सा विकल्प results = "hold", जो स्वत: समाप्त करने के लिए सभी उत्पादन की छपाई रखती है जोड़ा गया है। तदनुसार, हम सिर्फ

Chunk Output 
======================================================== 

Outside a chunk. 

```{r chunk1, results='hold'} 

cat('Inside a chunk\n\n') 

for (i in 1:3) { 
    cat('* Inside loop #', i, '\n') 
} 

cat('Outside a loop, but still inside the first chunk') 
``` 
संबंधित मुद्दे