是否可以创建一个编写 rmarkdown 文档的函数?例如,我想创建 3 个不同的 htlml_documents,其中包含鸢尾花数据集中不同物种的摘要。有些像下面(不是工作示例)
markdown_function <- function(function_input){
---
title: "Untitled"
date: "November 14, 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r iris}
summary(iris[iris$Species == function_input, ])
```
}
apply(data.frame(species = c('setosa', 'versicolar', 'virginica')), 1, markdown_function)
Run Code Online (Sandbox Code Playgroud)
我建议采用稍微不同的方法。param使用文件 yaml 中设置的物种值创建 RMarkdown 文件。使用该值进行过滤。然后在另一个脚本中,使用您的apply函数为每个物种编织 RMarkdown 文件。
RMarkdown,另存为iris_params.Rmd
---
title: "Parameterized iris summary"
date: "November 14, 2018"
output: html_document
params:
species: setosa
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r iris}
species <- params$species
summary(iris[iris$Species == species, ])
```
Run Code Online (Sandbox Code Playgroud)
渲染脚本:
species <- c("setosa", "versicolor", "virginica")
sapply(species, function(x) {
rmarkdown::render(input = "iris_params.Rmd",
output_file = sprintf("iris_params_%s.html", x),
params = list(species = x))
})
Run Code Online (Sandbox Code Playgroud)
这将创建 3 个 HTML 文件,每个文件对应设置为参数的每个物种。请注意,默认情况下,将仅使用与输入文件相同的名称创建文件,只是适当更改扩展名,因此您需要为每个参数值创建输出文件名。我正在这样做,sprintf并将物种的值附加到基本文件名上。
输出,iris_params_virginica.html:
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |