我有一个 R Markdown 文档,用于创建每周分发几天的报告。我想知道是否有人对如何使用相同的 R Markdown 文档根据生成的日期来编织独特的报告有任何建议,而不是一遍又一遍地覆盖相同的编织文件并在文件资源管理器中手动重命名它。
像下面的基本示例一样,我的报告包含一行代码,该代码获取数据中的最新日期,我想使用此值将单独的针织文件创建为 PDF,而不是一遍又一遍地覆盖相同的文件。任何建议将不胜感激。
---
title: "Test Doc"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
date_today <- "25-11-2023"
```
```{r cars}
summary(cars)
```
将以下内容另存为
template.Rmd
在您的工作目录中
---
title: "Template document"
date: "25/11/2023"
output: html_document
params:
company: null
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## `r params$company` Report
This is a report on `r params$company`. It was generated on `r Sys.Date()`.
现在在 RStudio(或您选择的任何编辑器)中运行以下代码。
companies <- paste("Company", 1:3)
for (c in companies) {
fileName <- paste0(str_replace(c, " ", ""), "_", format(Sys.Date(), "%Y%m%d"), ".html")
rmarkdown::render(
"template.Rmd",
output_file = fileName,
params = list(company = c)
)
}
将在您当前的工作目录中创建三个 HTML 文件。他们的名字将是
Company1_<yyyymmdd>.html
、Company2_<yyyymmdd>.html
和 Company3_<yyyymmdd>.html
。每项内容将表明该报告与哪家公司相关。
就是这个道理。您应该能够使其适应您自己的特定用例。