RMarkdown中的命令是什么命令“源”并显示现有.R文件中的代码?

时间:2015-06-08 10:38:37

标签: r r-markdown

示例:我的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问题的链接也可以间接解决我的问题。

任何指针都会受到赞赏!!

1 个答案:

答案 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}

      ```