2014-01-10 16 views
8

一個簡單的塊中的R降價:可以將降價表達式和結果交織在同一個塊中嗎?

```{r} 
1 + 2 
3 + 4 
``` 

會產生以下時knitr轉換爲HTML:

<pre><code class="r">1 + 2</code></pre> 
<pre><code>## 3</code></pre> 

<pre><code class="r">3 + 4</code></pre> 
<pre><code>## 7</code></pre> 

我試圖輸出表達式和結果在一個塊

<pre><code class="r"> 
1 + 2 
## 3 
3 + 4 
## 7 
</code></pre> 

我試過修改塊參數(如結果和回聲)無濟於事。有什麼辦法可以做到這一點?

注意:我大概可以在CSS中使用::first::last選擇器,但我很好奇是否有內置選項。

回答

7

這可以使用hooks完成。在Rmd文檔的頂部添加以下代碼塊。它使用在knitting的最後階段的md文件上運行的文檔掛鉤。下面定義的鉤子標識後面的代碼塊,其間沒有任何文本塊,並將其摺疊爲一個。

```{r setup, cache = F, echo = F} 
knitr::knit_hooks$set(document = function(x){ 
    gsub("```\n*```r*\n*", "", x) 
}) 
``` 

說明:在此塊中設置cache = F以便始終運行此代碼很重要。

+0

我會補充說你還應該加上'echo = FALSE'。否則,該函數將出現在每個文件的頂部。感謝你的回答! – sharoz

+0

非常真實@sharoz。我已經更新了我的答案, – Ramnath

相關問題