mer*_*erv 3 yaml r knitr r-markdown
我有一个 RMarkdown 文档,其中包含示例 YAML 文件,当前格式为:
```{yaml}
name: r40_tidyverse
channels:
- conda-forge
- nodefaults
dependencies:
- r-base=4.0
- r-tidyverse
```
Run Code Online (Sandbox Code Playgroud)
这会渲染(编织)成 HTML,并带有漂亮的 YAML 语法突出显示。
针织结果

我想将其作为外部 YAML 文件包含在其中,而不是上面的内容,例如位于envs/r40_tidyverse.yaml. 我尝试过使用
```{yaml child="envs/r40_tidyverse.yaml"}
```
Run Code Online (Sandbox Code Playgroud)
虽然这会正确加载文件,但生成的 HTML 只是一个<p></p>包含文件内容的元素。
针织结果

这是不可取的。
如何将外部 YAML 文件加载到 RMarkdown 文档中并实现类似于直接包含 YAML 代码块的语法突出显示?
我认为最简单的方法是在内联 R 表达式中读取外部文件,例如,
```yaml
`r xfun::file_string('envs/r40_tidyverse.yaml')`
```
Run Code Online (Sandbox Code Playgroud)
请注意,您不应该使用 ```{yaml}(即不要添加{}到yaml),因为这会将其含义更改为knitr:
yaml引擎,并且您的第一个示例只是偶然工作的)。| 归档时间: |
|
| 查看次数: |
1074 次 |
| 最近记录: |