示例:我的R脚本名为“code.R”。它生成y与x的简单绘图。在Rmarkdown中看起来像这样。
````{r eval=FALSE}
## code in "code.R"
x = 1:10
y = 1:10
plot(x,y)
```
对于文档和可重复性,我想创建一个Rmarkdown文件,当从RStudio编织时,该文件读取“code.R”。 (有点像LaTex中的 \ include {} 。)因此,生成的RMarkdown PDF应显示来自“code.R”的未经评估的R代码的逐字副本。
最终目标是创建一个RMarkdown文件,该文件读取数十个R文件并将所有R代码组合在一个PDF中,以便重现性和未来参考。这会阻止我每次更改源文件时复制粘贴新的R代码。我对在RMarkdown中实际运行R代码不感兴趣。
解决方案的一部分(但是如何?)可能是创建一个读取文件并存储读取的文本行的块,另一个块将这些文本行显示为逐字代码?
是否有现成的内置RMarkdown命令或```{r eval = FALSE} 中的其他选项产生我的预期结果?你能提供一个例子吗?
一个更复杂的Stackoverflow问题的链接也可以间接解决我的问题。
任何指针都会受到赞赏!!
答案 0 :(得分:4)
找到解决方案:http://yihui.name/knitr/demo/externalization/
使用注释" ## ---- input.R"启动input.R脚本。 (没有引号)
使用以下代码制作.Rmd脚本并编织它。它将在生成的PDF中显示input.R脚本的内容。
---
output: pdf_document
---
```{r cache=FALSE, echo=FALSE}
knitr::read_chunk('input.R')
```
```{r input.R, eval=FALSE}
```