在 rmarkdown::render 不工作的循环中打印 gt table
Printing gt table inside a loop with rmarkdown::render not working
我正在编写导出 html 的报告生成器。我使用两个文件,第一个是一个循环,它将确定报告的数量,在我的 .Rmd 模板中,我有另一个循环来打印几个表格。
下面的 .Rmd,工作正常
---
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()
)
}
输出
但如果从外部文件调用它并渲染表不显示
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")
}
通常的 htmltools::tagList
技巧似乎有效。
没有深入研究 render
内部结构以试图理解为什么它的行为与手动编织不同。
---
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()))
}
我正在编写导出 html 的报告生成器。我使用两个文件,第一个是一个循环,它将确定报告的数量,在我的 .Rmd 模板中,我有另一个循环来打印几个表格。
下面的 .Rmd,工作正常
---
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()
)
}
输出
但如果从外部文件调用它并渲染表不显示
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")
}
通常的 htmltools::tagList
技巧似乎有效。
没有深入研究 render
内部结构以试图理解为什么它的行为与手动编织不同。
---
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()))
}