【问题标题】:Create appendix with R-code in rmarkdown/knitr在 rmarkdown/knitr 中使用 R 代码创建附录
【发布时间】:2016-02-02 19:47:42
【问题描述】:

是否可以在附录中获取所有代码。假设我在一个文档中有两个块,然后是一些文本。

```{r, echo=TRUE}
x <- 4+5
x
```  
Above is X output.

```{r, echo=TRUE}
y <- 22+325
y
```   

Above is Y output.

然后我希望将所有代码放在附录中,但显示时好像我将 eval=FALSE 放在了块中。

类似的东西

```{r, SHOW_ALL_CODE=TRUE}
```

预期输出:

Chunk_1
x <- 4+5  
x

Chunk_2  
y <- 22+325  
y

【问题讨论】:

    标签: r knitr r-markdown


    【解决方案1】:

    另一种可能性:

    ### Appendix 
    ```{r, ref.label=knitr::all_labels(),echo=TRUE,eval=FALSE}
    ```
    

    按照Yihui's nice example的建议

    【讨论】:

    • 最佳答案,因为不需要包含文件路径。
    【解决方案2】:

    knitr::purl() 可以将 Markdown 文件中的所有 R 代码提取到 R 脚本中。您可以将其添加为附录。

    ## appendix
    
    ```{r code=readLines(knitr::purl('~/path/to/file.Rmd', documentation = 0)), eval = FALSE}
    
    ```
    

    【讨论】:

    • 这真是太好了。是否可以将块分开?或者给个标题?现在我必须使用# comments在代码中给出一个标题。
    • 设置documentation = 1。然后节标题将添加为 cmets。详情请见?purl
    【解决方案3】:

    您可以使用对初始块的引用,然后更改选项:

    main text
    
    ```{r blah, echo = FALSE}
    summary(cars)
    ```
    
    appendix
    
    ```{r blah2, ref.label='blah', eval = FALSE}
    ```
    

    这会给:

    【讨论】:

    • 有时我有/想将某些功能的代码放在报告的附录中。我知道最初的问题是关于“所有”代码块的。最终,这个答案并没有提供“所有”块。这是一种将内容添加到 Rmd 文档的附录并允许编写周围文本的直观方式。其他答案显示了如何以编程方式执行此操作。 Yihui 有一篇关于使用 knitr::all_labels 和子集或使用 appendix = TRUE 的帖子。对于我未来的我:想想你想用附录中的代码做什么!这个可以带你走很远。
    猜你喜欢
    • 2013-08-24
    • 2015-07-06
    • 1970-01-01
    • 2014-10-28
    • 2018-12-10
    • 2013-10-03
    • 2019-04-13
    • 2015-09-02
    • 1970-01-01
    相关资源
    最近更新 更多