从R代码块内操作RMarkdown元数据 [英] Manipulate RMarkdown metadata from within R code chunks

查看:22
本文介绍了从R代码块内操作RMarkdown元数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

简而言之:有没有办法从以下R代码块中操作从YAML头生成的RMarkdown的metadata列表?为了说明这一点,我尝试了以下几种方法:

---
title: "Untitled"
output: html_document
---

```{r}
rmarkdown::metadata$title <- "New title"
rmarkdown::metadata$title
```

这会引发错误。

Error in rmarkdown::metadata$title <- "New title" : 
  Object 'rmarkdown' not found

背景

我正在开发一个RMarkdown TeX模板。前同步码的某些部分需要根据YAML报头中定义的变量lang进行本地化。我目前的方法是检查metadata$lang的值并创建相应术语的列表。例如,我想将列表内容添加到metadata,并通过$loc_wordcount$访问tex-template中的术语。

推荐答案

我认为这个问题的答案是否定的(不过,我不是百分之百确定)。

但是,有一种不同的方法可以做到这一点。您可以使用参数化报表(https://bookdown.org/yihui/rmarkdown-cookbook/parameterized-reports.html)。

要做到这一点,方法是:

使用名为param$value的参数创建rmarkdown文件(例如,名为";input.Rmd";):

---
title: "params$new_title"
output: html_document
---

The rest of the report goes here.

然后使用传入的参数呈现报表:

rmarkdown::render('input.Rmd', params = list(new_title = "New title"))

这篇关于从R代码块内操作RMarkdown元数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆