有没有一种方法可以从Rmarkdown中的YAML标头中提取日期信息以在R块中使用?

时间:2020-08-17 16:09:17

标签: r date yaml r-markdown

我正在使用Rmarkdown制作电子实验室笔记本模板。我将日期条目用作实验日期,并且我希望使用相同的日期信息在R块中生成文件名,而不必不断重新输入日期。有没有可以从YAML标头中提取此信息的命令?

1 个答案:

答案 0 :(得分:0)

在rmarkdown文档的外部中,rmarkdown::yaml_front_matter()应该很适合您。

但是,如果您在谈论 inside (本身是一个小块),那么我认为您应该研究Parameterized RMarkdown documents;具体来说,请添加params:\n date: !r Sys.date(),在文档的其他位置使用R中的params$date

例如:

---
title: My Document
output: html_document
params:
  date: !r Sys.Date()
---

## Header

Inline, today's date is `r params$date`.

```{r}
cat("In a code chunk, today's date is ", format(params$date, format = "%b %d, %Y"), "\n")
```

rendered rmarkdown document

如果您需要指定“今天”以外的特定日期,则可以在呈现时更改值,

rmarkdown::render('foo.Rmd', params=list(date="2020-01-01"))

(尽管在此示例中,"2020-01-01"在我的示例中将无法正确地重新格式化,因为format不会获得实际的Date类对象。不同日期的主题:-)