我在R Markdown中編寫了一份報告,其中我不想在報告的主體中打印任何R代碼 - 我只想顯示圖,計算我將其替換爲文本內聯的變量,並且有時會顯示少量的原始R輸出。因此,我寫這樣的東西:R Markdown - 打印文檔中使用的所有代碼片段的簡明方法
In the following plot, we see that blah blah blah:
```{r snippetName, echo=F}
plot(df$x, df$y)
```
Now...
這一切都很好,很好。但是我還想在文檔的末尾提供R代碼,以供任何人想知道它是如何生成的。現在我不得不手工編寫這樣的事:
Here is snippet 1, and a description of what section of the report
this belongs to and how it's used:
```{r snippetName, eval=F}
```
Here is snippet 2:
```{r snippetTwoName, eval=F}
```
<!-- and so on for 20+ snippets -->
一旦有以上幾個代碼片斷更多這得到相當繁瑣,而且容易出錯。有什麼辦法可以循環使用片段並自動打印出來嗎?我希望我可以這樣做:當它編織在指定點
```{r snippetName, echo=F, comment="This is snippet 1:"}
# the code for this snippet
```
,不知何故以下結果代入文檔:
This is snippet 1:
```{r snippetName, eval=F}
```
我想我可以寫一些後處理代碼來掃描.Rmd
文件,找到所有代碼片斷,並用正則表達式或其他東西(我似乎記得有一些選項文件可以用來將命令注入到pandoc進程中?),但我'希望可能會更簡單些。
編輯:這絕對不是一個重複的 - 如果你仔細閱讀我的問題,最後一個代碼塊展示我到底做答案的鏈接的問題提出了什麼(在語法上的些許差異,這可能是混亂的根源?)。我正在尋找一種方法,無需手動爲文檔中的所有20個代碼片段寫出最後一個代碼塊。
的可能的複製[使用rmarkdown/knitr來保存所有代碼,直到結束](http://stackoverflow.com/question/28458384/use-rmarkdown-knitr-to-hold-all-code-until-the-end) – kukushkin
你可能會調用'purl()'來生成一個包含所有代碼塊的外部R文件,將它讀回該文檔可能在將eval = FALSE重新定義爲默認值並刪除最後兩個塊(用於purl和用於顯示的塊)之後。 – baptiste
實際上,[purl可以關閉](http://stackoverflow.com/a/17246052/471093)最後兩個塊 – baptiste