YAML当前日期

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

我想知道是否有办法把当前的日期放在YAML的最前面.rmd待处理的文件knitrrmarkdown包裹。我以前在维基页面的顶部有下面一行,

   _baptiste, `r format(Sys.time(), "%d %B, %Y")`_

它会被转换成2014,5月3日,巴普蒂斯特在html输出中。现在,我想利用rmarkdown,但是在YAML头中使用r代码似乎不起作用:

---
title: "Sample Document"
output:
  html_document:
    toc: true
    theme: united
date: `r format(Sys.time(), "%d %B, %Y")`
author: baptiste
---

Error in yaml::yaml.load(front_matter) : 
  Scanner error: while scanning for the next token at line 6, column 7
 found character that cannot start any token at line 6, column 7
Calls: <Anonymous> ... output_format_from_yaml_front_matter -> 
       parse_yaml_front_matter -> <Anonymous> -> .Call

有解决办法吗?

提问于
用户回答回答于

这有点棘手,但你只需要date字段在YAML中有效,引用内联R表达式。

date: "`r format(Sys.time(), '%d %B, %Y')`"

然后解析错误将消失,日期将在减价输出中生成,这样Pandoc就可以使用Sys.time()

用户回答回答于

'`r format(Sys.Date(), "%B %d, %Y")`'

"`r format(Sys.Date(), '%B %d, %Y')`"

对于后者,RStudio选择将外部引号更改为'每当切换到HTML和PDF输出之间,从而破坏代码。

扫码关注云+社区