I am programming a report generator that export html. I use two files, the first is a loop that will determine the number of reports and within my .Rmd template I have another loop to print several tables.
The .Rmd below, works fine
---
title: "Report"
author: "Me"
date: "`r format(Sys.time(), '%d de %B de %Y')`"
output:
html_document
---
# First Section
```{r , results='asis', echo=FALSE, message=FALSE}
library(tidyverse)
library(gt)
i=1
df <- cbind(m=c(rep(1,16),rep(2,16)),mtcars)
gears <- unique(df$gear)
for(g in gears)
{
cat("## gear", g, "\n")
print(
df %>% filter(gear==g & m==i) %>%
gt()
)
}
The output
but if call it from the external file with render the tables do not show
library(tidyverse)
library(gt)
df <- cbind(m=c(rep(1,16),rep(2,16)),mtcars)
for (i in 1:2)
{
rmarkdown::render(
'report_template_2.Rmd', output_file = paste0("report",
"_",i,
'.html'), encoding="UTF-8")
}
The usual htmltools::tagList
trick seems to work.
Didn't dig into render
internals to try to understand why it behaves differently than manual knit.
---
title: "Report"
author: "Me"
date: "`r format(Sys.time(), '%d de %B de %Y')`"
output:
html_document
---
# First Section
```{r,eval=F,echo=F}
gt(mtcars)
```
```{r , results='asis', echo=FALSE, message=FALSE}
library(tidyverse)
library(gt)
i=1
df <- cbind(m=c(rep(1,16),rep(2,16)),mtcars)
gears <- unique(df$gear)
l <- list()
i<-1
for(g in gears)
{
cat("## gear", g, "\n")
print(htmltools::tagList(df %>% filter(gear==g & m==i) %>% gt()))
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With