【问题标题】:Is there a way to extract the date information from the YAML header in Rmarkdown for use in an R chunk?有没有办法从 Rmarkdown 中的 YAML 标头中提取日期信息以用于 R 块?
【发布时间】:2020-08-17 16:09:17
【问题描述】:

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

【问题讨论】:

  • 我以前从未使用过它,但是你见过 rmarkdown 包中的yaml_front_matter() 函数吗?似乎这可以工作(如果您可以在文档名称中写入)。我不知道您在一个文档中的日期是否会随着时间或其他原因发生变化,但您也可以手动将日期分配为早期设置块中的对象,并将其用于文档其余部分的名称。不过,后一种想法需要两次而不是一次写出日期。

标签: r date yaml r-markdown


【解决方案1】:

外部 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")
```

如果您需要指定除“今天”以外的特定日期,您可以在渲染时更改该值,

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

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

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2022-12-11
    • 2022-07-18
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多