gpt4 book ai didi

R Markdown - 打印文档中使用的所有代码片段的简洁方法

转载 作者:行者123 更新时间:2023-12-04 10:26:52 25 4
gpt4 key购买 nike

我正在用 R Markdown 写一份报告,我不想在报告的主体中打印我的任何 R 代码——我只想显示图表,计算我替换为内联文本的变量,有时显示少量的原始 R 输出。因此,我写了这样的东西:

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文件,找到所有片段,然后用正则表达式或其他东西提取代码(我似乎记得有某种选项文件可用于将命令注入(inject) pandoc 进程?),但我希望可能有一些东西更简单。

编辑 :这绝对不是重复的——如果你彻底阅读了我的问题,最后一个代码块显示我正在按照链接问题的答案所暗示的那样做(语法略有不同,这可能是造成困惑的根源?) .我正在寻找一种方法,不必为文档中的所有 20 多个片段手动写出最后一个代码块。

最佳答案

这在 knitr 中是可行的,无需使用 pandoc。基于一辉在 https://github.com/yihui/knitr-examples/blob/master/073-code-appendix.Rnw 上发布的示例

设置 echo=FALSE整个文档:opts_chunk$set(echo = FALSE)
然后把这个 block 放在最后打印所有代码:

 ```{r show-code, ref.label=all_labels(), echo = TRUE, eval=FALSE}

```

这将打印所有 block 的代码。目前它们都显示在一个 block 中;我很想弄清楚如何放入 block 标签或其他一些标题......现在我从评论开始我的 block (无论如何可能不是一个坏主意)。

更新:要仅显示已评估的 block ,请使用: ref.label = all_labels(!exists('engine')) - 见问题 40919201

关于R Markdown - 打印文档中使用的所有代码片段的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35512308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com