RMarkdown 中用于 "source" 并显示现有 .R 文件中的代码的命令是什么?

What is the command in RMarkdown to "source" and display the code from an existing .R file?

示例:我的 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 代码不感兴趣。

部分解决方案(但如何?)可能是创建一个块来读取文件并存储读取的文本行,以及另一个块来将这些文本行显示为逐字代码?

````{r eval=FALSE} 中是否存在现有的内置 RMarkdown 命令或其他选项可以产生我想要的结果?你能举个例子吗?

一个 link 一个更复杂的 Whosebug 问题,它间接解决了我的问题,也很感激。

如有指点,将不胜感激!!

找到的解决方案: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}

      ```