通过循环创建 R Markdown html
Creating R Markdown htmls by looping
我有一个很大的报告说我是 运行 通过 R Markdown。该报告有一个数据框。在脚本的开头,过滤了数据框。之后,它会做很多操作和解释。
目前,我改变了我过滤的内容并分别编制了每份报告。我想使这个过程自动化,以便我可以提供一个术语向量来过滤并生成报告。
这是一个例子:
---
title: "Create markdown htmls with loop"
author: "Nathan Roe"
date: "2/17/2022"
output: html_document
---
library(dplyr)
my_df <- data.frame(my_letters = letters[1:5], my_numbers = 1:5)
my_df %>% filter(my_letters == "a")
我想为 a、b、c、d 和 e 生成报告。目前,我必须进入并更改要过滤的内容。如上例所示,我正在过滤“a”。之后,我将不得不更改它以过滤“b”,等等。有没有办法自动执行此操作,以便我提供向量 a、b、c、d 和 e,并根据这些过滤器生成报告,并使用字母作为标题生成 html。例如,我提供 my_letters <- letters[1:5]
,脚本会创建 a.html、b.html、c.html、d.html 和 e.html。
似乎与此类似,https://community.rstudio.com/t/loop-for-output-files/79716,但是这个例子解释得不好,即使它确实回答了问题。
谢谢!
你说的link给出了生成一个parametrized report的所有元素。
在您的示例中,您可以 knit with custom parameters 使用 rmarkdown::render
。
降价文件:test.Rmd
---
title: "Create markdown htmls with loop"
author: "Nathan Roe"
date: "2/17/2022"
output: html_document
params:
letter: 'a'
---
# `r paste('Processing letter ',letter)`
```{r}
letter
```
html
循环生成文件 :
for (letter in letters[1:5] ) {
rmarkdown::render(input = 'test.Rmd',
output_file = paste0(letter,".html"),
params = list(letter = letter))
}
...
我有一个很大的报告说我是 运行 通过 R Markdown。该报告有一个数据框。在脚本的开头,过滤了数据框。之后,它会做很多操作和解释。
目前,我改变了我过滤的内容并分别编制了每份报告。我想使这个过程自动化,以便我可以提供一个术语向量来过滤并生成报告。
这是一个例子:
---
title: "Create markdown htmls with loop"
author: "Nathan Roe"
date: "2/17/2022"
output: html_document
---
library(dplyr)
my_df <- data.frame(my_letters = letters[1:5], my_numbers = 1:5)
my_df %>% filter(my_letters == "a")
我想为 a、b、c、d 和 e 生成报告。目前,我必须进入并更改要过滤的内容。如上例所示,我正在过滤“a”。之后,我将不得不更改它以过滤“b”,等等。有没有办法自动执行此操作,以便我提供向量 a、b、c、d 和 e,并根据这些过滤器生成报告,并使用字母作为标题生成 html。例如,我提供 my_letters <- letters[1:5]
,脚本会创建 a.html、b.html、c.html、d.html 和 e.html。
似乎与此类似,https://community.rstudio.com/t/loop-for-output-files/79716,但是这个例子解释得不好,即使它确实回答了问题。
谢谢!
你说的link给出了生成一个parametrized report的所有元素。
在您的示例中,您可以 knit with custom parameters 使用 rmarkdown::render
。
降价文件:test.Rmd
---
title: "Create markdown htmls with loop"
author: "Nathan Roe"
date: "2/17/2022"
output: html_document
params:
letter: 'a'
---
# `r paste('Processing letter ',letter)`
```{r}
letter
```
html
循环生成文件 :
for (letter in letters[1:5] ) {
rmarkdown::render(input = 'test.Rmd',
output_file = paste0(letter,".html"),
params = list(letter = letter))
}