【问题标题】:set date format for knitr document设置 knitr 文档的日期格式
【发布时间】:2022-01-24 14:03:19
【问题描述】:

有没有办法设置全局选项(通过 options() 或 knitr::opts_chunk$set() 或其他方式)以将 knitr/Rmd 文档中的所有日期设置为特定样式的格式。因此,我不必每次有约会时都写 format(DATE, '%d %m %Y'),而可以写 DATE 并自动完成格式化?

【问题讨论】:

标签: r date format r-markdown knitr


【解决方案1】:

按照R Markdown Cookbook,您可以通过自定义knit_print 方法实现您想要的结果。为了增加一些灵活性,您可以在 YAML 标头中添加日期格式作为参数,例如允许以不同的日期格式呈现文档。

---
title: Custom knit_print for Dates
output: html_document
params:
  date_format: '%d %m %Y'
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r}
knit_print.Date = function(x, ...) {
  format(x, params$date_format)
}

registerS3method(
  "knit_print", "Date", knit_print.Date,
  envir = asNamespace("knitr")
)

```

```{r}
DATE <- as.Date(Sys.Date())
```

`r as.Date(Sys.Date())`

【讨论】:

  • 我希望有比这更漂亮的东西,但它会成功的。谢谢。
【解决方案2】:

我的问题的部分答案是使用 flextable 进行表格输出和设置

set_flextable_defaults(
   fmt_date = '%d-%m-%Y',
   fmt_datetime = '%d-%m-%Y %H:%M:%S')

在设置块中。这显然不适用于未显示在表格中的日期,但仍然可以解决我最初的问题。

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多